ホームページ > バックエンド開発 > Python チュートリアル > Pythonにスタックはありますか?

Pythonにスタックはありますか?

爱喝马黛茶的安东尼
リリース: 2019-06-25 17:39:58
オリジナル
4334 人が閲覧しました

英語の辞書では、「スタック」とは、オブジェクトを別のオブジェクトの上に置くことを意味します。このデータ構造でのメモリの割り当て方法は同じです。データ要素は、キッチンにある食器の山と同じように、重ねて保存されます。したがって、操作可能なスタックデータの最後をスタックの先頭と呼ぶことができます。要素はスタックの最上位に追加することも、スタックから単純に削除することもできます。

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[0]AStack = Stack()AStack.add("Mon")AStack.add("Tue")AStack.peek()print(AStack.peek())AStack.add("Wed")AStack.add("Thu")print(AStack.peek())Python
ログイン後にコピー

上記のコード例を実行すると、次の結果が得られます-

Mon
MonShell
ログイン後にコピー

関連する推奨事項: 「Python ビデオ」 tutorial

スタックの削除

スタックからデータ要素のみを削除する機能を実現するPythonプログラムを以下に実装します。次のプログラムの削除関数は、最上位の要素を返します。まずスタックのサイズを計算して最上位の要素を確認し、次に組み込みの 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")print(AStack.remove())AStack.add("Wed")AStack.add("Thu")print(AStack.remove())Python
ログイン後にコピー

上記のサンプル コードを実行すると、次の結果が得られます。

Tue
Thu
ログイン後にコピー

以上がPythonにスタックはありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート