佇列的特點:先進先出(fifo)
使用單鏈表技術,在表首尾兩端分別加入指標,就很容易實現佇列類。
1#佇列類的實現23
class
squeue() :45
def__init__(slef,init_len = 8) :
6 self._len = init_len #
儲存區長度
7 self._elems = [0] * init_le #
元素儲存
8 self._head = 0 #
表頭元素下標
9 self._num = 0 #
元素個數
1011
defis_empty(self) :
12return self._num ==0
1314
def peek(self) : #
檢視首元素
15if self._num ==0 :
16raise
queueunderflow
17return
self._elems[self._head]
1819
def dequeue(self) : #
出隊20
if self._num ==0 :
21raise
queueunderflow
22 e =self._elems[self._head]
23 self._head = (self._head + 1) %self._len
24 self._num -= 1
25returne26
27def enquene(self,e) : #
入隊28
if self._num ==self._len :
29 self.__extend
()30 slef._elems[(self._head + self._num) % self._len] =e
31 self._num += 1
3233
def__extenc() : #
擴充元素表 個數*2
34 old_len =self._len
35 self._len *= 2
36 new_elems = [0] *self._len
37for i in
range[old_len] :
38 new_elems[i] = self._elems[(self._head + i) %old_len]
39 self._elems ,self._head = new_elems , 0
python資料結構之佇列
一 介紹 1 可以把列表當做佇列用,只是在佇列裡第一加入的元素,第乙個取出來。2 拿列表用作這樣的目的效率不高。在列表的最後新增或者彈出元素速度快,然而在列表裡插入或者從頭部彈出速度卻不快 因為所有其他的元素都得乙個乙個地移動 二 應用內建的佇列模組 from collections import ...
python資料結構之佇列(queue)
佇列是一種特殊的線性表,先進先出,只允許在前端進行刪除,在後端進行插入操作,它的操作方式與堆疊類似,區別在於佇列只允許在後端插入資料。在python中有相應的類 import queue q queue.queue for i in range 4 q.put i 將乙個值放入佇列中 while n...
佇列 資料結構 Java版
佇列 佇列是一種先進先出的資料結構,它的元素只能在一端增加,該端稱為rear,元素的刪除只能在另一端進行,這一端稱為front.1.基於陣列的實現 迴圈佇列 public class queueclass public void initializequeue public class linked...