リストのスタックとキュー

投稿者: | 2022-12-03
  • 『Pythonチュートリアル』P44より

目次

リストをスタックとして使う

  • リストのメソッドを使って、リストをスタックとして使える
  • スタックでは最後に追加された要素が最初に取得される(「後入れ先出し(LIFO:last-in, first-out)」)
  • スタックのトップにアイテムを積むには append() を使う
  • スタックのトップからアイテムを取得するには、インデックスを指定しない pop() を使う
  • ちなみに、スタックでは、データを入れることを push、取り出すことを pop とよぶ

リストをキュートとして使う

  • リストはキューとしても使える
  • キューは要素を入れた順に取得する(「先入れ先出し(FIFO:first-in, first-out)」)
  • リストの末尾で append や pop するのは高速だが
  • リストの「先頭」付近での insert や pop は遅い
  • そのため、キューの実装には collections.deque を使う
  • deque は 先頭と末尾の両方で「要素の追加・削除」「アクセス」が高速になるように設計されている
  • ただし、deque は両端以外の要素へのそれらは遅い
  • 使い方はほぼリストとそのまま同じことができる。
  • リストに変換したいときは,list(deque(L)) でよい
  • ちなみに、キューでは、データを入れることをエンキュー(enqueur)、取り出すことをデキュー(dequeue)とよぶ