佇列的python實現

2022-05-08 21:33:13 字數 2435 閱讀 3090

佇列(queue),是一種操作受限的線性表。只允許在佇列的一端新增元素,在佇列的另一端刪除元素。能新增元素的一端稱為隊尾,能刪除元素的一端稱為隊頭。

佇列最大的特性是:先進先出(fifo,first in first out)

下面為普通佇列的python實現:

#

!/usr/bin/env python

#-*- coding:utf-8 -*-

__author__ = "

hsz"

class

queue(object):

"""佇列

"""def

__init__(self, maxsize=0):

"""maxsize<=0代表佇列不限定大小

"""self.queue =

self.maxsize =maxsize

defis_empty(self):

return len(self.queue) ==0

defis_full(self):

if self.maxsize <=0:

return

false

else

:

return len(self.queue) ==self.maxsize

defenqueue(self, item):

"""入隊

"""if

self.is_full():

raise exception("

queue is full!")

else

:

defdequeue(self):

"""出隊

"""if

self.is_empty():

raise indexerror("

queue is empty!")

else

:

return

self.queue.pop(0)

defsize(self):

return

len(self.queue)

defget_front(self):

"""返回隊頭元素

:return:

"""if

self.is_empty():

raise indexerror("

queue is empty!")

else

:

return

self.queue[0]

defget_rear(self):

"""返回隊尾元素

:return:

"""if

self.is_empty():

raise indexerror("

queue is empty!")

else

:

return self.queue[-1]

defprint_queue(self):

return

self.queue

if__name__ == "

__main__":

#例項化物件佇列

queue =queue()

#入隊四個數

queue.enqueue(1)

queue.enqueue(2)

queue.enqueue(3)

queue.enqueue(4)

print(queue.queue) #

[1, 2, 3, 4]

print(queue.is_empty()) #

false 佇列不為空

print(queue.is_full()) #

false 佇列沒有到最大元素

#出隊 先入先出 出的是1 所有剩 [2,3,4]

queue.dequeue()

print

(queue.queue)

#返回佇列的元素個數 3

print

(queue.size())

#獲取佇列的頭資料 2

print

(queue.get_front())

#獲取佇列的尾資料 4

print

(queue.get_rear())

#列印佇列所有資料 [2,3,4]

print(queue.print_queue())

列印結果為:

[1, 2, 3, 4]

false

false

[2, 3, 4]32

4[2, 3, 4]

其他型別待續。。。

佇列的實現 Python

今天,給大家分享一下佇列實現的一些方法。我們說一下什麼是佇列,佇列就是先進去的先出來 現在我將佇列實現的方法在下述 裡面 class queue object 佇列 def init self self.list def enqueue self,item 往佇列中新增乙個item元素 def de...

python 清空佇列 python實現 佇列

佇列 佇列的乙個特性是 先進先出 first in first out,fifo python中,同樣可以使用列表來儲存佇列的資料。通過建立乙個佇列類,便可以方便的對佇列進行操作。主要有 入隊 in 出隊 out 清空佇列 empty 設定佇列大小 setsize 獲取隊尾位置 getend 等 p...

佇列(python實現)

adt queue queue self 建立空佇列 is empty self 判斷佇列是否為空 enqueue self,elem 入隊 dequeue self 出隊 peek self 檢視最早入隊的元素,不刪除class queueunderflow valueerror 空佇列訪問 pa...