自定義鍊錶實現棧的資料結構,**如下:
1class
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._first.next
8def
isempty(self):
9return self._first is
none
10class
_node:
11def
__init__
(self,item,next):
12 self.item =item
13 self.next =next
1415
defmain():
16 stack =stack()
17 stack.push("a"
)18 stack.push("b"
)19 stack.push("c"
)20print
(stack._first.item)
21print
(stack._first.next.item)
22print
(stack._first.next.next.item)
2324
if__name__ == "
__main__
": main()
執行結果:
>> c
>> b
>> a
棧**的關鍵在於實現節點的遞迴結構
佇列是排隊買票,先進的先出;棧是擠地鐵,先進的反而後出
鍊錶的實現,關鍵在於乙個單位記憶體空間,既可以儲存內容,也可以儲存位址(指標)
資料結構 棧 鍊錶實現
鍊錶實現的棧可以克服在程式執行時也無法估計棧容量大小的情況 棧中的元素是儲存在稱為節點的類中,每個節點都包含乙個資料域和乙個指標域 資料域儲存棧的值,指標域指示棧中下乙個值得位置 而棧類的資料成員是需要乙個指向棧頂的指標即可 類宣告如下 typedef int stackelement class ...
資料結構 棧 鍊錶的實現
鍊錶的實現和陣列的實現最大的不同在於鍊錶的插入操作代價要低於陣列,不過總體代價還是陣列更低,因為鍊錶的構造和連線部分代價其實很高。基本結構 private node head null push操作 public void push string str pop操作 public string po...
資料結構 棧的鍊錶實現
1.構造結構體作為鍊錶的節點 typedef struct node linkstack 2.建棧操作 為指標s分配一塊空間,返回後作為鍊錶的頭節點。其後繼為空,表示棧為空。向棧中壓入元素後,它的直接後繼就是棧頂元素。linkstack createstack 3.判斷棧是否為空 int isemp...