この記事では、Python アルゴリズムでのスタックの実装を例の形式で示します。これは、データ構造ドメイン アルゴリズムを学習するための一定の参考値となります。具体的な内容は以下の通りです:
1. 一般的なスタック操作:
Stack() は空のスタック オブジェクトを作成します
Push() は要素をスタックの先頭に追加します
Pop() はスタックの最上位の要素を削除し、この要素を返します
Peak() は最上位の要素を削除せずに返します
isEmpty() スタックが空かどうかを判断します
size() はスタック内の要素の数を返します
2. 単純なケースと操作結果:
Stack Operation Stack Contents Return Value s.isEmpty() [] True s.push(4) [4] s.push('dog') [4,'dog'] s.peek() [4,'dog'] 'dog' s.push(True) [4,'dog',True] s.size() [4,'dog',True] 3 s.isEmpty() [4,'dog',True] False s.push(8.4) [4,'dog',True,8.4] s.pop() [4,'dog',True] 8.4 s.pop() [4,'dog'] True s.size() [4,'dog'] 2
ここでは、Python のリスト オブジェクトを使用してスタックの実装をシミュレートします。具体的なコードは次のとおりです。
#coding:utf8 class Stack: """模拟栈""" def __init__(self): self.items = [] def isEmpty(self): return len(self.items)==0 def push(self, item): self.items.append(item) def pop(self): return self.items.pop() def peek(self): if not self.isEmpty(): return self.items[len(self.items)-1] def size(self): return len(self.items) s=Stack() print(s.isEmpty()) s.push(4) s.push('dog') print(s.peek()) s.push(True) print(s.size()) print(s.isEmpty()) s.push(8.4) print(s.pop()) print(s.pop()) print(s.size())
興味のある読者は、この記事で説明されているサンプル コードをテストしてみてください。Python を学ぶことは誰にとっても有益であると思います。