栈的实现
1 class Stack(object): 2 #定义初始化方法 3 def __init__(self): 4 #初始化一个空列表 5 self.__list = [] 6 7 #压栈 8 def push(self,item): 9 self.__list.append(item) #在尾部添加不需要移动元素,o(1) 10 #self.__list.insert(0,item) #在头部添加元素需要移动元素,o(n) 11 12 #弹栈 13 def pop(self): 14 return self.__list.pop() 15 16 #返回栈顶元素 17 def peek(self): 18 return self.__list[len(self.__list)-1] 19 20 #判断栈是否为空 21 def is_empty(self): 22 return self.__list == [] 23 24 #判断栈的大小 25 def size(self): 26 return len(self.__list) 27 28 if __name__ == '__main__': 29 stack = Stack() 30 print('是否是空栈:',stack.is_empty()) 31 #压栈 32 stack.push(1) 33 stack.push(2) 34 stack.push(3) 35 stack.push(4) 36 #弹栈 37 print(stack.pop()) 38 print(stack.pop()) 39 print(stack.pop()) 40 print(stack.pop())
1 是否是空栈: True 2 4 3 3 4 2 5 1
正是江南好风景