0
這裏是實現具有3個元素堆棧鏈表可能是什麼樣子:堆棧的頂部應該在堆棧的鏈表中實現?
list
|
v
-------- -------- ---------
| C | -+-->| B | -+-->| A | 0 |
-------- -------- ---------
,我們應該在哪裏考慮堆棧的頂部是,列表的開頭或結尾,爲什麼?
在此先感謝。
這裏是實現具有3個元素堆棧鏈表可能是什麼樣子:堆棧的頂部應該在堆棧的鏈表中實現?
list
|
v
-------- -------- ---------
| C | -+-->| B | -+-->| A | 0 |
-------- -------- ---------
,我們應該在哪裏考慮堆棧的頂部是,列表的開頭或結尾,爲什麼?
在此先感謝。
在鏈表中訪問最快的元素通常是頭(某些實現也保留對尾元素的引用)。由於堆棧只需要訪問頂層元素,它應該是鏈表的頭元素。這將避免爲每個操作迭代整個列表。
list.head將成爲棧頂。元件將在頭部添加像
插入(L,X)
1. x.next = head.next 2. head = x
同樣缺失將在頭部來執行。
刪除(L)
1. x=head 2. head = head.next 3. Free x
以這種方式插入和刪除將在LIFO順序是堆棧可以以執行。
我很困惑堆棧的頂部在哪裏?由於堆棧的頂端指向下一個元素將被存儲的內存位置,因此我們在這裏沒有保留的內存位置。 –