Pythonのデータ構造とアルゴリズム - キュー

キュー

1.定義:いずれかを可能にする線形制限キューテーブルインサートと両端の削除操作は、と呼ばれ、許可されている操作、削除、「尾部」という操作に終了する「頭部の」を

2.特徴:

  • キューの中のデータ操作はヘッドおよびキューテールをキューに入れることができます
  • 法律FIFOスタックモデルまたは最後に挙げたの後部

3.キューコードの実装

そこ操作キューのエンキュー、デキュー、フル空のキュー操作など決意。

。1  「」 " 
2  格納するキューsqueue.py
 3つの キーコード
 4。 
5つの。 アイデア分析:
 6  の完全なリスト記憶構造に基づい1.
 7  2.パッケージの所定の操作キューのヘッドとテールキュー
 8  『』 ' 
。9  
10    カスタムキュー例外
11。 クラスQueueError(例外):
 12は   パス
13である 
14  
15  キュー操作クラス
16  、クラスのsqueue:
 17    DEF  __init__ (自己):
 18である      self._elems = []
 。19  
20である   空きキュー分析
21である   DEFのis_empty(自己):
 22れます     戻り self._elemsを== []
 23は 
24    リストのエンキュー端
25    DEF エンキュー(セルフ、ELEM):
 26れる     self._elems.append(ELEM)
 27  
28    #は、リストの先頭からデキュー
29    DEFのデキュー(自己):
 30      IF  ませんself._elems:
 31である       レイズ QueueError(" 空のキューである" 32      リターンself._elems.pop(0)
 33は、 
34である 
35  IF  __name__は == " __main__ " 36の    。SQ =SQUEUE()
 37    sq.enqueue(10 38    sq.enqueue(20 39    sq.enqueue(30 40    しばらく しないsq.is_empty():
 41      プリント(sq.dequeue())
キューに格納されているコード・シーケンス
1  「」 " 
2つの lqueue.pyキューチェーン
 3  キーコード
 4。 
5つの。 アイデア分析:
 6  スタックリストに基づいて1完了チェーンモデル
 7  リンクリストキューヘッドの先頭として2、尾部として尾翼
 8  3.同様に頭と尾点空きキューとしてノード
 9  「」 " 
10  
。11    カスタム・キュー例外
12は クラス:QueueError(例外)
 13は   パス
14  
15  ノードクラスの
16  クラスノード:
 17    DEF  __init__(自己、データ、次に= なし):
 18であり、      自己= .DATA データ
 19      self.next = 次に
 20であります 
21  鎖クラスキュー
22は、ある クラス:LQueue
 23は   DEF  __init__ :(自己)
 24      議論の余地ノードへの初期のヘッドおよびテールポイント
25      self.rear self.front = = ノード(なし)
 26である 
27    DEFのis_empty(自己):
 28      リターン self.front == self.rear
 29  
30     テールアクチュエータに
31である   DEF エンキュー(セルフ、ELEM):
 32      self.rear.next = ノード(ELEM)
 33である      self.rear = self.rear.next
 34は、 
35     可動ヘッド
36    DEFデキュー(自己):
 37      もし == self.front self.rear:
 38        昇給 QueueError(" キューが空である" 39      self.front = self.front.next
 40      戻りself.front.data
 41  
42  なら __name__ == " __main__ " 43    LQ = LQueue()
 44    lq.enqueue(10 45    lq.enqueue(20 46    lq.enqueue(30 47の   印刷(lq.dequeue())
キューチェーン店コード

おすすめ

転載: www.cnblogs.com/maplethefox/p/10988580.html