資料結構之佇列(Python 版)

2022-08-19 02:39:08 字數 1456 閱讀 5347

佇列的特點:先進先出(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...