用Python學習資料結構1 佇列

2021-07-24 06:36:24 字數 1026 閱讀 5447

佇列是一種特殊的線性表,特殊之處在意它只允許在表的前端(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...