資料結構與演算法分析 第三章 棧

2021-08-23 12:32:26 字數 1560 閱讀 8530

棧是限制插入和刪除只能在乙個位置上進行的表,該位置是表的末端,叫做棧頂(top),對棧的基本操作有push(進棧)和pop(出棧),前者相當於插入,後者則是刪除最後插入的元素。

棧是後進先出的(lifo)表,一般的模型中,存在某個元素位於棧頂,而該元素是唯一的可見元素。只有棧頂元素是可以訪問的

棧是乙個表,因此任何實現表的方法都能實現棧。兩種方法實現:一種是指標,一種是使用陣列

棧的陣列實現是目前用的最多的方法

棧的宣告:

#ifndif _stack_h

struct stackrecord;

typedef struct stackrecord *stack;

int isempty(stack s);

int isfull(stack s);

stack createstack(int maxelements);

void disposestack(stack s);

void makeempty(stack s);

void push(elementtype x,stack s);

elementtype top(stack s);

void pop(stack s);

elementtype topandpop(stack s);

#endif

#define emptytos(-1)

#define minstacksize(5)

struct stackrecord

;

棧的建立:

stack creatstack(int maxelements)

釋放棧:

void disposestack(stack s)

}

檢測乙個棧是否空棧:

int isempty(stack s)

建立乙個空棧:

void makeempty(stack s)

進棧:

void push(elementtype x,stack s)

出棧:

void pop(stack s)

給出棧頂元素並出棧:

elementtype topandpop(stack s)

}

資料結構 第三章 棧與佇列

3.1 棧 3.1.1 抽象資料型別棧的定義 棧是限定僅在表尾進行插入或刪除操作的線性表。因此,對棧來說,表尾端有其特殊含義,稱為棧頂。相反地,表頭端稱為棧底。棧是後進先出 lifo 的線性表。基本操作 top 返回棧頂元素 pop 彈出棧頂元素 push a 將元素a壓入棧 empty 判斷是否為...

資料結構 第三章 棧與佇列

定義 限定僅在表尾進行插入和刪除操作的線性表。即後進先出的線性表 last in first out 表尾即棧頂top,表頭即棧低bottom。儲存方式 順序棧 鏈棧 順序棧 一組位址連續的儲存單元,一次存放自棧低到棧頂的資料元素。結構 兩個指標top,base,乙個int size描述棧的大小 空...

資料結構之第三章 棧

出棧特點 後進先出 最近忙著準備期末的考試,要知道大學生掛科是一件很可怕的事情。先將一點棧的知識記錄下來,一學期過了課本啥的也就丟了。棧是一種只能在一端進行刪除插入或刪除操作的線性表。棧中的資料元素的邏輯關係呈線性關係,所以棧可以和線性表一樣採用順序儲存結構進行儲存。採用順序儲存結構的棧稱為順序棧。...