Python-data-structure-python-stack

提供:Dev Guides
移動先:案内検索

Python-スタック

英語の辞書では、単語スタックとは、オブジェクトを別のものの上に配置することを意味します。 このデータ構造でメモリが割り当てられるのと同じ方法です。 たくさんのプレートがキッチンで上下に保存されるのと同様の方法でデータ要素を保存します。 そのため、スタックデータ構造により、スタックの最上位と呼ばれることができる一方の操作が許可されます。 スタック内のこの要素からのみ要素を追加または削除できます。

スタックでは、スタックの最上部からしか削除できないため、最後に順番に挿入された要素が最初に表示されます。 このような機能は、後入れ先出し(LIFO)機能として知られています。 要素を追加および削除する操作は、 PUSH および POP として知られています。 次のプログラムでは、関数を追加および削除として実装します。 空のリストを宣言し、append()およびpop()メソッドを使用してデータ要素を追加および削除します。

スタックにプッシュ

class Stack:

    def __init__(self):
        self.stack = []

    def add(self, dataval):
# Use list append method to add element
        if dataval not in self.stack:
            self.stack.append(dataval)
            return True
        else:
            return False
# Use peek to look at the top of the stack

    def peek(self):
        return self.stack[-1]

AStack = Stack()
AStack.add("Mon")
AStack.add("Tue")
AStack.peek()
print(AStack.peek())
AStack.add("Wed")
AStack.add("Thu")
print(AStack.peek())

上記のコードが実行されると、次の結果が生成されます。

Tue
Thu

スタックからのPOP

スタックから一番上のデータ要素のみを削除できることがわかっているので、それを行うpythonプログラムを実装します。 次のプログラムのremove関数は、最上位の要素を返します。 最初にスタックのサイズを計算して一番上の要素をチェックし、次に組み込みのpop()メソッドを使用して一番上の要素を見つけます。

class Stack:

    def __init__(self):
        self.stack = []

    def add(self, dataval):
# Use list append method to add element
        if dataval not in self.stack:
            self.stack.append(dataval)
            return True
        else:
            return False

# Use list pop method to remove element
    def remove(self):
        if len(self.stack) <= 0:
            return ("No element in the Stack")
        else:
            return self.stack.pop()

AStack = Stack()
AStack.add("Mon")
AStack.add("Tue")
AStack.add("Wed")
AStack.add("Thu")
print(AStack.remove())
print(AStack.remove())

上記のコードが実行されると、次の結果が生成されます。

Thu
Wed