隊列簡介
隊列與棧的結構類似,但不同的是隊列的出隊操作是在隊首元素進行的刪除操作。基本原則是先進先出。
隊列如何用python模擬
用列表,列表的功能非常強大,既能模擬堆棧又能模擬隊列,出隊的時候
- 取出隊首
- 挪動隊列元素
- 整體隊長-1
入隊的時候,直接在尾部加入:
list.append(element)
如果對數據結構感興趣,可以查看這篇博文:
執念斬長河專欄數據結構–目錄
例子:用python模擬隊列的入出隊操作
實驗效果
實驗代碼:
# -*- coding:utf-8 -*-
class PyQueue:
def __init__(self, size=20):
self.queue = []
self.size = size
self.end = -1
def setSize(self, size):
self.size = size
def In(self,element):
if self.end < self.size - 1:
self.queue.append(element)
self.end = self.end + 1
else:
raise QueueException('PyQueueFull')
def Out(self):
if self.end != -1:
element = self.queue[0] # 取出出隊的元素
self.queue = self.queue[1:] # 挪位置
self.end = self.end - 1 # 隊長-1
return element
else:
raise QueueException('PyQueueEmpty')
def End(self):
return self.end
def empty(self):
self.queue = []
self.end = -1
class QueueException(Exception):
def __init__(self,data):
self.data = data
def __str__(self):
return self.data
if __name__ == '__main__':
print('創建隊列.....')
queue = PyQueue()
print('入隊列....')
for i in range(20):
queue.In(i);
print('出隊列...')
print(queue.Out())
print('打印隊尾元素....')
print(queue.End())
print('清空隊列....')
queue.empty()