資料結構 棧的鍊錶實現

2021-07-28 02:51:36 字數 590 閱讀 8948

1.構造結構體作為鍊錶的節點

typedef

struct node linkstack;

2.建棧操作

為指標s分配一塊空間,返回後作為鍊錶的頭節點。其後繼為空,表示棧為空。向棧中壓入元素後,它的直接後繼就是棧頂元素。
linkstack *createstack()

3.判斷棧是否為空

int

isempty(linkstack *s)

4.進棧操作

因為是鏈式儲存,所以不須要檢查棧是否已滿。直接將新節點以首插法的方式插入鍊錶頭部即完成進棧操作。
void push(linkstack *s, int item)

5.出棧操作

出棧前首先檢查棧是否已空。
int pop(linkstack *s)

else

}

資料結構 棧 鍊錶實現

鍊錶實現的棧可以克服在程式執行時也無法估計棧容量大小的情況 棧中的元素是儲存在稱為節點的類中,每個節點都包含乙個資料域和乙個指標域 資料域儲存棧的值,指標域指示棧中下乙個值得位置 而棧類的資料成員是需要乙個指向棧頂的指標即可 類宣告如下 typedef int stackelement class ...

資料結構 棧 鍊錶的實現

鍊錶的實現和陣列的實現最大的不同在於鍊錶的插入操作代價要低於陣列,不過總體代價還是陣列更低,因為鍊錶的構造和連線部分代價其實很高。基本結構 private node head null push操作 public void push string str pop操作 public string po...

資料結構 棧的鍊錶實現

自定義鍊錶實現棧的資料結構,如下 1 class stack 2def init self 3 self.first none 4def push self,item 5 self.first node item,self.first 6def pop self 7 self.first self....