スタックとキュー

Pythonではリスト型のメソッドを使うことで、リストをスタックやキューとして扱えます。

目次

  1. リストをスタックとして扱うときのメソッド
  2. リストをキューとして扱うときのメソッド

リストをスタックとして扱うときのメソッド

list.append(x) リストの末尾に要素xを1つ追加します。C#でいうところのPushですね。

list.pop([i]) リストの中のインデックスiの要素を削除して返します。インデックスを指定しない場合は末尾の要素を削除して返します。

len(list) リストの要素の数を返します。

list.reverse(list) リストの要素を逆順にします。

list[len(list)-1] リストの末尾の要素を削除せずに返します。C#でいうところのStackクラスのPeekですね。

stackというリストに対して、いろいろ試してみました。

>>> stack
['one', 'two', 'three', 'four']
>>> stack.append('five')
>>> stack
['one', 'two', 'three', 'four', 'five']
>>> stack.pop()
'five'
>>> stack
['one', 'two', 'three', 'four']
>>> len(stack)
4
>>> stack.reverse()
>>> stack
['four', 'three', 'two', 'one']
>>> stack[len(stack)-1]
'one'
>>> stack
['four', 'three', 'two', 'one']

リストをキューとして扱うときのメソッド

list.append(x) リストの末尾に要素xを1つ追加します。C#でいうところのEnqueueですね。

list.pop(0) リストの中のインデックスの要素を削除して返します。インデックスに0を指定すると、先頭の要素を削除して返します。C#でいうところのDequeueですね。

len(list) リストの要素の数を返します。

list.reverse(list) リストの要素を逆順にします。

list[0] リストの最初の要素を返します。C#でいうところのQueueクラスのPeekですね。

list[len(list)-1] リストの最後の要素を返します。C#でいうところのLastですね。

queueというリストに対して、appendとpop(0)を試してみます。lenとreverseはスタックの場合と同じです。

>>> queue
['one', 'two', 'three', 'four']
>>> queue.append('five')
>>> queue
['one', 'two', 'three', 'four', 'five']
>>> queue.pop(0)
'one'
>>> queue
['two', 'three', 'four', 'five']
>>> queue[0]
'two'
>>> queue
['two', 'three', 'four', 'five']
>>> queue[len(queue)-1]
'five'
>>> queue
['two', 'three', 'four', 'five']

広告

Pythonのデータカテゴリの投稿