佇列是一種特殊的線性表,特殊之處在意它只允許在表的前端(front 隊頭)進行刪除操作,而在表的後端(隊尾)進行操作。即「先進先出」
# -*- coding: utf-8 -*-
"""spyder editor
this is script file for queue.
"""class
queue:
def__init__
(self,size):
self.size=size
self.front=-1
self.rear=-1
self.queue=
#入隊操作
defenqueue
(self,item):
if self.isfull():
raise exception("queue is full")
else:
self.rear=self.rear+1
#出隊操作
defdequeue
(self):
if self.isempty():
raise exception("queue is empty")
else:
self.front=self.front+1
return self.queue[self.front]
#判斷佇列是否已滿
defisfull
(self):
return self.rear-self.front+1==self.size
#判斷佇列是否為空
defisempty
(self):
return self.front==self.rear
if __name__=="__main__":
q=queue(10);
for i in range(3):
q.enqueue(i)
print(q.dequeue())
print(q.isempty())
資料結構 隊
1 隊的定義 1.1 隊 只允許在一端進行插入,在另一端進行刪除的操作的線性表,又稱為先進先出 first in first out 線性表,簡稱fifo 1.2 隊的相關概念 隊頭 允許進行刪除操作的一端 隊尾 允許進行插入操作的一端 空隊 不含任何資料元素的隊 1.3 隊的操作 入隊 在隊尾新增...
資料結構(2) 隊
隊 queue 前一篇講了棧 stack 隊和棧其實只有乙個差別,棧是先進後出,隊是先進先出,如圖 從圖中可以看出,隊有兩個常用的方法,enqueue和dequeue,顧名思義,就是進隊和出隊了。隊和棧一樣,既可以用陣列實現,也可以用鍊錶實現,我還是偏向於用陣列,我的實現示意圖如下 隊有啥用呢?乙個...
資料結構 隊queue
實現 所以實現佇列只需要提供隊前刪除的方法和對尾插入的方法 可以通過陣列實現,也可以通過鍊錶實現,jdk中arraydeque是通過陣列實現的佇列 雙向佇列 linkedlist,則是通過雙向鍊錶實現的佇列 可以作為棧來看 具體實現略 jdk中的隊體系 常見 繼承於collection介面的queu...