以下是实现具有3个元素的堆栈的链表可能如下所示:
list
|
v
-------- -------- ---------
| C | -+-->| B | -+-->| A | 0 |
-------- -------- ---------
我们应该在哪里考虑堆栈的顶部,列表的开头或结尾,以及为什么?
提前致谢。
答案 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。