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顺序是堆栈可以以执行。
我很困惑堆栈的顶部在哪里?由于堆栈的顶端指向下一个元素将被存储的内存位置,因此我们在这里没有保留的内存位置。 –