資料結構 棧(一)

2021-07-02 11:37:18 字數 623 閱讀 8812

棧(stack),特殊的線性表,只能在表頭進行插入和刪除操作。又稱為後進先出表、lifo表。

因為之前發帖問動態規劃時別人說可以用棧實現動態規劃而去看了看,寫下來留作記錄~

棧實現的基本操作有:1、empty()——判斷乙個棧是否為空棧;

2、full()——判斷乙個棧是否為滿棧;(與1及其類似)

3、top()——返回棧頂元素;

4、push(x)——把x插入棧頂;

5、pop()——刪除棧頂元素並輸出;

看書上說棧分為順序實現的鏈式指標形實現,我先學了順序實現,用得是陣列和c++的類實現。

下面是**實現:

#include using namespace std;

class stack

;//----------------------------------成員函式的實現------------------------------

stack::stack(int size)

stack::~stack()

bool stack::empty()

int stack::top()

{ if(top==0)

cout<<"棧為空。"<

資料結構 棧(一)

概念簡述 特點 應用 原理實現 時間複雜度分析 一種只能從一端新增 取出元素的線性結構,相比於陣列操作較少,對應的操作是陣列的子集,可以簡單理解 為就是乙個操作受限並且元素排列存放的陣列 1.只能從一端進行操作 棧頂 即只能從一端新增元素 入棧 或取出元素 出棧 2.對於使用者而言,棧內元素不可見更...

資料結構 棧 棧

可以把棧想像成乙個桶 進棧 就是把和桶口一樣大的燒餅往桶裡面扔 出棧 就是把燒餅拿出來 特點 先進後出。先扔進去的燒餅最後才能拿出來,最後扔進去的燒餅,第乙個拿出來 剛開始top 1 top 1 然後把進棧的元素賦值給data top 入棧操作 void push stack s,int x els...

js 資料結構(一) 棧

棧 棧是一種遵從後進先出 lifo 原則的有序集合。新新增的或待刪除的元素都儲存在棧的末尾,稱作棧頂,另一端就叫棧底。在棧裡,新元素都靠近棧頂,舊元素都接近棧頂。現實生活中就有很多棧的例子。如下圖的書本,這一摞書如果要取肯定是先去最上面的那一本,但它是最後乙個放上去的,也就是棧頂的元素都是待新增或是...