栈
# stack,后进先出(LIFO: Last In First Out)
class Stack(object):
"""
使用列表实现的顺序栈
"""
def __init__(self):
"""创建一个新的空栈"""
self.data = []
def push(self,item):
"""入栈,进栈,压栈"""
self.data.append(item)
def pop(self):
"""出栈,退栈"""
return self.data.pop()
def peek(self):
"""返回栈顶元素"""
return self.data[-1]
def is_empty(self):
"""判断栈是否为空"""
return self.data == []
def size(self):
"""返回栈的元素个数"""
return len(self.data)
if __name__ == '__main__':
stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)
print(stack.peek())
print(stack.pop())
print(stack.pop())
print(stack.pop())