隊列的鏈?zhǔn)酱鎯?/h2>
"""
lqueue.py 隊列的鏈?zhǔn)酱鎯?重點代碼

思路分析:
1. 基于鏈表模型完成鏈?zhǔn)綏?2. 鏈表開端作為隊頭,尾端作為隊尾
3. 頭尾指向同一個節(jié)點時作為空隊列
"""

#  自定義隊列異常
class QueueError(Exception):
  pass

#節(jié)點類
class Node:
  def __init__(self, data, next=None):
    self.data = data
    self.next = next

# 鏈?zhǔn)疥犃蓄?class LQueue:
  def __init__(self):
    # 初始頭尾指向一個沒有實際意義的節(jié)點
    self.front = self.rear = Node(None)

  def is_empty(self):
    return self.front == self.rear

  # 入隊 尾動
  def enqueue(self,elem):
    self.rear.next = Node(elem)
    self.rear = self.rear.next

  # 出對 頭動
  def dequeue(self):
    if self.front == self.rear:
      raise QueueError("Queue is empty")
    self.front = self.front.next
    return self.front.data

if __name__ == "__main__":
  lq = LQueue()
  lq.enqueue(10)
  lq.enqueue(20)
  lq.enqueue(30)
  print(lq.dequeue())
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容