鏈棧的介紹與實現

2021-10-08 14:04:49 字數 1409 閱讀 9042

鏈棧:採用鏈式儲存的棧稱為鏈棧

在乙個鏈棧中,棧底就是鍊錶的最後乙個結點,而棧頂總是鍊錶的第乙個結點。因此,新入棧的元素即為鍊錶新的第乙個結點,只要系統還有儲存空間,就不會有棧滿的情況發生。

鏈棧的優點在於多個棧共享儲存空間和提高其效率,且不存在棧滿上溢的情況,通常採用單鏈表實現,並規定所有操作都是在單鏈表的表頭進行的。

初始化鏈棧

void initstack(linkstack*s)

判斷棧空

int linkstackempty(linkstack*s)

入棧操作

void push(linkstack s,int e)

將要入棧的元素構造結點p,然後將其插入到棧頂指標s之後,讓s始終指向新插入的結點(保證s永遠是棧頂指標)

出棧操作

int pop(linkstack s,int

*e)

取棧頂元素

int get top(linkstack s,int

*e)

#include

#include

typedef

int elementtype;

// 特殊的線性表,只有在棧頂一端進行插入刪除

typedef

struct node

*stack;

stack initstack

(void

)void

push

(stack s, elementtype e)

//保證s永遠是棧頂指標

void

pop(stack s, elementtype *e)

//保證s永遠是棧頂指標

鏈隊的介紹與實現

1 鏈隊定義 佇列的鏈式儲存結構簡稱為鏈佇列,它是限制僅在表頭刪除和表尾插入的單鏈表。顯然僅有單鏈表的頭指標不便於在表尾做插入操作,為此再增加乙個尾指標,指向鍊錶上的最後乙個結點。typedef int elemtype typedef struct queue queue typedef stru...

鏈棧的實現

解釋 由於鍊錶有頭指標,而棧也必須有頭指標,所有合二為一 鏈棧為空的條件為頭指標為空,頭指標儲存在乙個新的結構體中。儲存空間初始分配量 typedef int selemtype typedef int status typedef struct stacknode stacknode,linkst...

鏈棧的實現

typedef int elemtype typedef struct stacknodestacknode,linkstack 鏈棧的實現是先定義乙個結點指標,使其為null。這個作為判斷是否空棧的標誌。鏈棧的空棧借助乙個空指標,只要棧頂指標指向這個空指標就說明是空棧。鏈棧的實現是申請一塊空間,將...