ホームページ  >  記事  >  バックエンド開発  >  Pythonのスタックとは何を指すのでしょうか?

Pythonのスタックとは何を指すのでしょうか?

藏色散人
藏色散人オリジナル
2019-07-02 09:27:274581ブラウズ

Pythonのスタックとは何を指すのでしょうか?

#スタックは、順序付けられた項目のコレクションであり、新しい項目の追加と削除は常に同じ端で行われます。この端はしばしば「トップ」と呼ばれます。上端に相当する端を「下端」と呼びます。

Pythonのスタックとは何を指すのでしょうか?#図のように、s=(a1,a2,…an-1,an) を積み上げます。スタックに最後にプッシュされたものは an であり、スタックからポップされた最初のものも an です。したがって、スタックは LIFO 原則に準拠します。


LIFO


LIFO、つまり、後入れ先出しの並べ替え原則です。コレクション内の時間の長さに基づいて並べ替えられます。新しいアイテムは上部近くにあり、古いアイテムは下部近くにあります。スタックの一番下にあるアイテムは最も長く保管されるため、スタックの一番下は重要です。最近追加されたアイテムが最初に削除されます。

スタックが重要な理由は、アイテムの順序を逆転できるからです。挿入と削除は逆の順序で行われます。


最も典型的な例は、すべての Web ブラウザに戻るボタンがあることです。 Web を閲覧すると、Web ページがスタック (実際には Web ページの URL) に配置されます。現在閲覧しているページが上部にあり、最初に閲覧していたページが下部にあります。 「戻る」ボタンを押すと、前のページを逆の順序で閲覧します。


Python 実装スタック

# 创建一个空的新栈。 它不需要参数,并返回一个空栈。
class Stack:
    def __init__(self):
        self.items = []
        
    # 测试栈是否为空。不需要参数,并返回布尔值。
    def isEmpty(self):
        return self.items == []
    
    # 将一个新项添加到栈的顶部。它需要 item 做参数并不返回任何内容。
    def push(self, item):
        self.items.append(item)
        
    # 从栈中删除顶部项。它不需要参数并返回 item 。栈被修改。
    def pop(self):
        return self.items.pop()
    
    # 从栈返回顶部项,但不会删除它。不需要参数。 不修改栈。
    def peek(self):
        return self.items[len(self.items)-1]
    
    # 返回栈中的 item 数量。不需要参数,并返回一个整数。
    def size(self):
        return len(self.items)

10 進数を任意の基数に変換

スタックはわかっています。基本的な操作を練習するための小さなプロジェクト。 10 進数を任意の基数に変換します。実際、最大の数値は 16 進数です (これ以上の基数はありますか?)。

def baseConverter(n, base):
    
    # n是输入的十进制数字,base为要转化的进制数
    digits = '0123456789ABCDEF'
    
    #创建一个新栈
    s= Stack()
    
    # 将每次计算所得的余数添加进栈
    while n> 0:
        rem = n % base
        s.push(rem)
        n = n // base
    
    # 将余数倒序排列至新字符串    
    newString = ''
    while not remstack.isEmpty():
        newString = newString + digits[remstack.pop()]
        
    return newString

関連する推奨事項:「

Python チュートリアル

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。