資料結構 佇列(Python實現)

2021-09-22 18:49:24 字數 3273 閱讀 3195

佇列的操作及實現(先進先出)

佇列操作

佇列內容

返回值is_empty()

true

insert(2)

insert(5)

insert(8)

2,52,5,8

pop()

5,82

size()

5,82

順序佇列

(1)初始化

def __init__(self):

self.que =

(2)判斷是否為空

def is_empty(self):

return not self.que

(3)向佇列中插入元素

def insert(self, val):

self.que.insert(0,val)

(4)刪除佇列中的元素

def pop(self):

return self.que.pop()

(5)求佇列中元素的個數

def size(self):

return len(self.que)

總的**

#順序佇列

class queue(object):

def __init__(self):

self.queue =

def is_empty(self):

return not self.queue

self.queue.insert(0,val)

def pop(self):#從尾部移除

return self.queue.pop()

def size(self):

return len(self.queue)

if __name__ == '__method__':

q = queue()

print(q.is_empty())

q.insert(1)

q.insert(2)

q.insert(5)

print(q.size())

print(q.pop())

print(q.pop())

print(q.size())

鏈式佇列

(1)定義

class chainqueue(object):

def __init__(self,val):

self.value = val

self.next = none

(2)初始化

def __init__(self):#設定一頭一尾兩個指標,在後續的插入刪除時比較方便

self.head = none

self.rear = none

(3)判斷是否為空

def is_empty(self):

return not self.head

(4)向佇列中插入元素

def insert(self, val):#從尾部插入

q = chainqueue(val)

if self.is_empty():

self.head = q

self.rear = q

else:

self.rear.next = q

self.rear = q

(5)刪除佇列中的元素

def pop(self):#從頭部刪除

if self.is_empty():

raise indexerror('the queue is none')

m = self.head.value

self.head = self.head.next

return m

(6)求佇列中元素的個數

def size(self):

q = self.head

index = 0

while q:

index = index + 1

q = q.next

return index

總的**

#鍊錶佇列

class chainqueue(object):

def __init__(self,val):

self.value = val

self.next = none

class cqueue(object):

def __init__(self):#設定一頭一尾兩個指標,在後續的插入刪除時比較方便

self.head = none

self.rear = none

def is_empty(self):

return not self.head

def insert(self, val):#從尾部插入

q = chainqueue(val)

if self.is_empty():

self.head = q

self.rear = q

else:

self.rear.next = q

self.rear = q

def size(self):

q = self.head

index = 0

while q:

index = index + 1

q = q.next

return index

def pop(self):#從頭部刪除

if self.is_empty():

raise indexerror('the queue is none')

m = self.head.value

self.head = self.head.next

return m

if __name__ == '__method__':

q = cqueue()

print(q.is_empty())

q.insert(2)

q.insert(9)

q.insert(3)

q.insert(8)

print(q.size())

print(q.pop())

print(q.pop())

print(q.size())

Python 資料結構 佇列

queue 佇列是一種先進先出 fifo 的資料型別,新的元素通過 入隊 的方式新增進 queue 的末尾,出隊 就是從 queue 的頭部刪除元素.用列表來做 queue queue 初始化乙個列表資料型別物件,作為乙個佇列 defenq 定義乙個入棧方法 提示輸入乙個入隊的 string 物件,...

python資料結構 佇列

佇列 queue 是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出的 first in first out 的線性表,簡稱fifo。允許插入的一端為隊尾,允許刪除的一端為隊頭。佇列不允許在中間部位進行操作!假設佇列是q a1,a2,an 那麼a1就是隊頭元素,而an是隊...

資料結構 python 佇列

佇列 queue 是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列符合先進先出 fifo 的原則。複雜度分析 佇列屬於常見的一種線性結構...