堆栈顶部应该在堆栈的链表实现中的哪个位置?

时间:2011-10-01 07:42:38

标签: stack linked-list

以下是实现具有3个元素的堆栈的链表可能如下所示:

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

我们应该在哪里考虑堆栈的顶部,列表的开头或结尾,以及为什么?

提前致谢。

2 个答案:

答案 0 :(得分:1)

链接列表中访问的最快元素通常是头部(虽然某些实现也保留了对尾部元素的引用)。由于堆栈只需要访问顶部元素,因此应该是链表的头元素。这将避免为每个操作迭代整个列表。

答案 1 :(得分: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顺序执行,即Stack。