栈(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())