37 q.enqueue(1)
38 q.enqueue(2)
39 q.enqueue(3)
40 q.dequeue()
41 print(q.allquit())
python实现栈:(有注释) 1 class Node(object):
2 def __init__(self,val):
3 self.next=None
4 self.val=val
5 class Stack(object):
6 def __init__(self):
7 self.top=None #和queue不同栈删除插入都在一端 所以只定义一个位置
8
9 def push(self,n):
10 n=Node(n)
11 if(self.top==None): #如果栈为空
12 self.top=n
13 else:
14 n.next=self.top #插入元素的下一个为顶格元素
15 self.top = n #顶格元素为插入值
16
17 def pop(self): #删除顶格元素
18 if(self.top==None): #如果栈为空
19 return None
20 else:
21 temp=self.top.val
22 self.top=self.top.next #新的顶格元素为老顶格元素的上一个
23 return temp
24
25 def allquit(self): #打印栈方法
26 alist=[]
27 while(self.top!=None): #循环
28 temp=self.top.val #和pop()方法操作相同
29 self.top=self.top.next
30 alist.append(temp)
31 print(alist)
32
33 if __name__== "__main__" :
34 s=Stack()
35 s.push(1)
36 s.push(3)
37 s.push(5)
38 s.pop()
39 s.allquit()