資料結構 python 21 佇列

2021-10-24 17:09:11 字數 1633 閱讀 4283

佇列(queue)是乙個資料集合,僅允許在列表的一端進行插入,另一端進行刪除

進行插入的一端稱為隊尾(rear),插入動作稱為進隊或入隊

進行刪除的一端稱為隊頭(front),刪除動作稱為出隊

佇列的性質:先進先出(first-in, first-out)

為了讓佇列可以迴圈使用,這裡我們提出了環形佇列

環形佇列:

當隊首指標front == maxsize - 1時, 再前進乙個位置就自動到0.

'''

topic: 佇列queue

author: blue

time: 2020-08-11

'''class

queue

:def

__init__

(self, size=

100)

: self.queue =[0

for _ in

range

(size)

] self.size = size

self.rear =

0# 隊尾指標

self.front =

0# 隊首指標

defpush

(self, element):if

not self.is_filled():

self.rear =

(self.rear +1)

% self.size

self.queue[self.rear]

= element

else

:raise indexerror(

"queue is filled."

)def

pop(self):if

not self.is_empty():

self.front =

(self.front +1)

% self.size

return self.queue[self.front]

else

:raise indexerror(

"queue is empty."

)# 判斷隊空

defis_empty

(self)

:return self.rear == self.front

# 判斷隊滿

defis_filled

(self)

:return

(self.rear +1)

% self.size == self.front

q = queue(5)

for i in

range(4

):q.push(i)

print

(q.is_filled())

print

(q.pop())

q.push(

4)

結果:

true

0

有興趣的讀者也可以試試python的內建佇列模組deque

from collections import deque

資料結構5 佇列

5.1簡介 佇列 queue 和堆疊一樣是一種有序鍊錶,屬於抽象資料型別。不同在於是先進先出 first in,first out,fifo 堆疊只需要乙個top指標指向堆疊頂端即可,但是佇列必須使用front和rear兩個指標分別指向佇列的前端和尾端。基本操作 1 create 建立空佇列 2 a...

資料結構(二) 佇列

一 佇列定義 佇列是限定在一端進行插入,另一端進行刪除特殊線性表。二 佇列基本操作 入隊出隊 三 佇列例題 1.例1 舞伴配對問題 分析 這一題是一道經典的取模運算,每一次將編號往前加一位,到達n就取模。include include include include int main return ...

資料結構 七 佇列

1 佇列需要具備的特性 佇列和棧的底層實現資料結構可以是 陣列 鍊錶,只不過在此基礎上,佇列和棧需要過載兩個函式 節點的插入與刪除函式。佇列只能從煉表頭刪除節點,從鍊錶末尾插入節點 2 示例 ifndef data struct queue h define data struct queue h ...