stack
listを使えば良い。
1 | stack = [] |
listは末尾への挿入・削除はO(1)で処理できるが、任意の位置に対する挿入・削除はO(n)であることに注意が必要。つまり、stackとしてリストが与えられていた場合、順番を逆順にする等してstackの底をリストの先頭にすると良いだろう。
queue
dequeは両端キューとして実装されているが、これをqueueとして使えば良い。
1 | from collections import deque |
余談
dequeue自体はもちろんstackとしても利用可能である。ちなみにPythonのdequeは双方向連結リストで実装されているため、ランダムアクセス(端以外の要素へのアクセス)はO(n)となってしまう。純粋なstackとしての用途であれば、listとdequeどちらを用いても良いが、それらの特性を理解しておくと良いと思う。
参考
https://docs.python.org/3.7/library/collections.html#collections.deque