首先说栈,栈是什么?
栈先进后出,队列先进先出
形象点来说,栈就是一个手枪的子弹管,一粒一粒压进去,但是打出来的时候是从上面打出来的,最先压进去的最后弹出来,如果进去顺序是123,打出来顺序是321,这就是后进先出
队列的概念就是我们平时排队,按次序来,你排在第1个,那你就第一个轮到,就是先进先出,先到先来
实现栈的基本操作
1 class Stack():
2 def __init__(self):
3 self.items = []
4 """判断是否为空"""
5 def is_empty(self):
6 return self.items == []
7 """加入元素"""
8 def push(self, item):
9 self.items.append(item)
10
11 """弹出元素"""
12 def pop(self):
13 return self.items.pop()
14 """返回栈顶元素"""
15 def peek(self):
16 return self.items[len(self.items)-1]
17
18 """返回栈的大小"""
19 def size(self):
20 return len(self.items)
21 if __name__ == "__main__":
22 stack = Stack()
23 stack.push("hello")
24 stack.push("china")
25 stack.push("hi")
26 stack.push("中国")
27 print (stack.size())
28 print (stack.is_empty())
29 print (stack.peek())
30 print (stack.pop())
31 print (stack.pop())
32 print (stack.pop())