栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
栈可以用顺序表实现,也可以用链表实现,这里用顺序表实现。
class Stack:def __init__(self):self._items=[]def size(self):# 返回栈元素个数return len(self._items)def is_empty(self):return self._items==[]def push(self, item):# 添加新元素到栈顶self._items.append(item)def pop(self):# 弹出栈顶元素return self._items.pop()def peek(self):# 返回栈顶元素return self._items[self.size()-1]if __name__ == '__main__':stack = Stack()stack.push(2)stack.push(3)stack.push(4)stack.push(5)tmp = stack.pop()print(tmp)print(stack.peek())print(stack.size())print(stack.is_empty())
