目录
一、定义
栈就是类似杯子或桶一样,先放的东西总是在下面,后放入的东西总是在上面
总结就是先入后出,后入先出的原则。
二、栈的操作
1,添加新元素到栈顶
def push(self, item):
# 添加一个新的元素item到栈顶
self.__items.append(item)
2,删除栈顶元素
def pop(self):
# 弹出栈顶元素
return self.__items.pop()
3,查询栈顶元素
def peek(self):
# 返回栈顶元素
return self.__items[len(self.__items)-1]
4,判断栈是否为空
def is_empty(self):
# 判断栈是否为空
return self.__items == []
5,栈的元素个数
def size(self):
# 返回栈的元素个数
return len(self.__items)
三、完整代码
代码的含义就是创建一个空列表,每次往列表添加元素时都添加(insert)到列表最后面的位置(也是永远都添加元素到列表的最后位置),每次删除(pop)都是从尾部删除。实现先添加后删除(先入后出),后添加先删除(后入先出)。
class Stack():
def __init__(self):
self.__items = []
def push(self, item):
# 添加一个新的元素item到栈顶
self.__items.append(item)
def pop(self):
# 弹出栈顶元素
return self.__items.pop()
def peek(self):
# 返回栈顶元素
return self.__items[len(self.__items)-1]
def is_empty(self):
# 判断栈是否为空
return self.__items == []
def size(self):
# 返回栈的元素个数
return len(self.__items)
if __name__ == "__main__":
stack = Stack()
print("是否为空", stack.is_empty())
stack.push(1)
print("是否为空", stack.is_empty())
stack.push(2)
stack.push(3)
stack.push(4)
stack.push(5)
print("返回栈顶元素", stack.peek())
print(stack.pop())
print(stack.pop())
print(stack.pop())
print(stack.pop())
print(stack.pop())
输出结果
是否为空 True
是否为空 False
返回栈顶元素 5
5
4
3
2
1