栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。栈的元素有先进后出的原则
1 class Stack(object): 2 '''栈''' 3 def __init__(self): 4 '''以列表作为容器''' 5 self.__list = [] 6 7 def push(self, item): 8 '''压栈,添加一个元素''' 9 self.__list.append(item) 10 11 def pop(self): 12 '''弹出栈顶元素''' 13 return self.__list.pop() 14 15 def peek(self): 16 '''返回栈顶元素''' 17 if self.__list: 18 return self.__list[-1] 19 return None 20 21 def is_empty(self): 22 '''判断栈是否为空''' 23 return not self.__list 24 25 def size(self): 26 return len(self.__list) 27 28 if __name__ == "__main__": 29 stack = Stack() 30 stack.push(3) 31 stack.push(4) 32 print(stack.pop())