隊列
隊列(queue)是一種具有先進先出特征的線性數(shù)據(jù)結(jié)構(gòu),元素的增加只能在一端進行身隐,元素的刪除只能在另一端進行廷区。能夠增加元素的隊列一端稱為隊尾,可以刪除元素的隊列一端則稱為隊首贾铝。
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()
結(jié)果
deque(['Eric', 'John', 'Michael'])
deque(['Eric', 'John', 'Michael', 'Terry', 'Graham'])
Eric
棧
棧(stacks)是一種只能通過訪問其一端來實現(xiàn)數(shù)據(jù)存儲與檢索的線性數(shù)據(jù)結(jié)構(gòu)隙轻,具有后進先出(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