題目描述:
實現乙個佇列的資料結構,使其具有以下方法:入佇列,出佇列,檢視佇列尾元素, 檢視佇列的大小功能。
方法一:陣列實現
class queue1:
"""利用陣列實現"""
def __init__(self):
"""初始化"""
self.array =
self.front = 0 # 隊頭
self.rear = 0 # 隊尾
def isempty(self):
"""判斷佇列是否為空"""
return self.front == self.rear
def size(self):
"""判斷佇列的大小"""
return self.rear - self.front
def getfront(self):
"""返回佇列首元素"""
if self.isempty():
return none
return self.array[self.front]
def getback(self):
"""返回佇列尾元素"""
if self.isempty():
return none
return self.array[self.rear - 1]
def dequeue(self):
"""刪除佇列頭元素"""
if self.rear > self.front:
self.front += 1
else:
print("隊列為空")
def enqueue(self, item):
"""把新元素加入隊尾"""
self.rear += 1
方法二:鍊錶實現
class lnode:
"""節點"""
def __new__(self, x):
self.data = x
self.next = none
class queue2:
def __init__(self):
self.head = none
self.end = none
def empty(self):
"""判斷佇列是否為空,空返回true,否則返回false"""
if not self.head:
return true
else:
return false
def size(self):
"""獲取棧中的元素個數"""
size = 0
p = self.head
while p != none:
p = p.next
size += 1
return size
def enqueue(self, e):
"""把元素加入佇列尾部"""
p = lnode()
p.data = e
p.next = none
if self.head == none:
self.head = self.end = p
else:
self.end.next = p
self.end = p
def dequeue(self):
"""刪除佇列首元素"""
if self.head == none:
print("佇列已經為空")
self.head = self.head.next
if self.head == none:
self.end = none
def getfront(self):
"""獲得佇列首元素"""
if self.head == none:
print("隊列為空")
return none
return self.head.data
def getback(self):
if self.end == none:
print("隊列為空")
return none
return self.end.data
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...
Python實現佇列
佇列 是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。特點 先進先出。class queue object def init self se...