队列
队列(queue)是一种具有先进先出特征的线性数据结构,元素的增加只能在一端进行,元素的删除只能在另一端进行。能够增加元素的队列一端称为队尾,可以删除元素的队列一端则称为队首。
class DUILIE:
# 队列: 先进后出( 一头进:队尾 一头出:队首)
li = []
def cha(self):
return self.li
def add(self,x):
return self.li.append(x) # 队尾进
def qu(self):
return self.li.pop(0) # 队首出
d = DUILIE()
d.add(3)
d.add(4)
d.add(5)
print(d.cha()) [3, 4, 5]
print(d.qu()) 3
print(d.qu()) 4
print(d.qu()) 5
可以导入双端队列
from collections import deque
queue = deque(["Eric", "John", "Michael"])
print queue
queue.append("Terry")
queue.append("Graham")
print queue
print queue.popleft()
结果
deque(['Eric', 'John', 'Michael'])
deque(['Eric', 'John', 'Michael', 'Terry', 'Graham'])
Eric
栈
栈(stacks)是一种只能通过访问其一端来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIFO)的特征
class ZHAN:
# 栈: 先进后出
li = []
def add(self,x):
return self.li.append(x)
def qu(self):
return self.li.pop(-1)
def cha(self):
return self.li
l = ZHAN()
l.add(1)
l.add(2)
l.add(3)
print l.cha() [1, 2, 3]
print(l.qu()) 3
print(l.qu()) 2
print(l.qu()) 1
网友评论