2011-10-01 163 views
0

這裏是實現具有3個元素堆棧鏈表可能是什麼樣子:堆棧的頂部應該在堆棧的鏈表中實現?

list 
| 
v 
-------- -------- --------- 
| C | -+-->| B | -+-->| A | 0 | 
-------- -------- --------- 

,我們應該在哪裏考慮堆棧的頂部是,列表的開頭或結尾,爲什麼?

在此先感謝。

回答

1

在鏈表中訪問最快的元素通常是頭(某些實現也保留對尾元素的引用)。由於堆棧只需要訪問頂層元素,它應該是鏈表的頭元素。這將避免爲每個操作迭代整個列表。

+0

我很困惑堆棧的頂部在哪裏?由於堆棧的頂端指向下一個元素將被存儲的內存位置,因此我們在這裏沒有保留的內存位置。 –

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順序是堆棧可以以執行。