Python中单链表,如何实现弹出和推入?
我正在尝试编写一个类,这个类要使用栈的推入(Push)和弹出(Pop)功能,栈是用单链表实现的。我不太确定该怎么写推入和弹出的函数。我真的需要一个简单的Python示例,包含以下功能。
Push
Pop
ifEmpty
2 个回答
3
这是最简单的栈类:
class stack(list):
def push(self,item):
self.append(item)
def isEmpty(self):
return not self
>>> a = stack()
>>> a.push(1)
>> a.isEmpty()
False
>>> a.pop()
1
>>> a.isEmpty()
True
8
来自Dyno Fu链接的文档:
列表的方法让我们很容易把列表当作栈来用。在栈里,最后放进去的元素会第一个被取出来,这种方式叫做“后进先出”。如果想在栈顶添加一个元素,可以用
append()
。如果想从栈顶取出一个元素,可以用pop()
,而不需要指定具体的索引。举个例子:
>>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack.append(7)
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop()
7
>>> stack
[3, 4, 5, 6]
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack
[3, 4]
最后,要检查一个列表是否为空:
>>> my_list = []
>>> not my_list
True