アルゴリズムチャレンジ via Python (2) - Queue編 -

前回はStack編だったので今回はQueueを書いてみました. Queueは基本的にはStackと大差ないのですがStackが後入れ先だしなのに対し先入れ先出しです.待ち行列ともいいますね. 今回もclassを使います.

class要件はこんな感じでしょうか?

  • classは内部に配列を持つ.
  • classはqueue関数を持つ.

    • 引数:Queueの最後に追加したいオブジェクト.
    • 戻り値:なし.
  • classはdequeue関数を持つ.

    • 引数:なし.
    • 戻り値:Queueの先頭にあったオブジェクト.
class MyQueue:
  def __init__(self):
    self.mylist = []

  def enqueue(self, item):
    self.mylist.append(item)

  def dequeue(self):
    if len(self.mylist) <= 0:
      return
    else:
      head = self.mylist[0]
      del(self.mylist[0])
      return head

# Driver
myqueue = MyQueue()

myqueue.enqueue(1)
myqueue.enqueue(2)
myqueue.enqueue(3)

print(myqueue.dequeue()) # 1
print(myqueue.dequeue()) # 2
print(myqueue.dequeue()) # 3
print(myqueue.dequeue()) # None