栈(stack)的功能特征是 '后进先出 ', 既最后进栈的元素,出的时候最先出来。
可以想象成火车开进库,出来的时候倒着尾巴先出来。
在python中可以把栈写成用 append 和 pop 包装成类的的列表。
class stack:
def __init__(self):
self.__stack = []
# 推入元素到栈的顶端
def push(self, item):
self.__stack.append(item)
# 从栈的顶端拿走元素
def pop(self):
self.__stack.pop()
# 检查是否为空
def is_empty(self):
return len(self.__stack) == 0
# 查看顶部元素
def top_item(self):
return self.__stack[len(self.__stack) - 1]
# 查看栈的大小
def size(self):
return len(self.__stack)
if __name__ == "__main__":
box = stack()
for i in range(1, 11):
box.push(i)
print('查看栈的大小:',box.size())
print('==============')
while (box.is_empty() == 0):
print(box.top_item())
box.pop()
结果
需要注意的是 .pop()
返回的是删除的元素的本身。
例如:
a = [1, 2, 3, 4]
print(a.pop())
打印出来的是 4。