2011-10-01 158 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顺序是堆栈可以以执行。