ホームページ  >  記事  >  バックエンド開発  >  Pythonにはスタックがありますか?

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

藏色散人
藏色散人オリジナル
2019-06-28 10:56:435078ブラウズ

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

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

Python にはスタックがあります。スタックは、一方の端にアクセスすることによってのみデータを格納および取得できる線形データ構造であり、後入れ先出し (LIFO) の特性を持っています。

スタックに対する 2 つの主な操作は、要素をスタックにプッシュすることと、要素をスタックからポップすることです。

push() メソッドを使用してスタックにプッシュし、pop() メソッドを使用してスタックをポップアウトします。

もう 1 つの一般的な操作は次のとおりです。スタックの一番上の要素をプレビューします。 Pop() メソッドはスタックの最上位の要素にアクセスできますが、このメソッドを呼び出した後、スタックの最上位の要素もスタックから完全に削除されます。 Peak() メソッドは、スタックの最上位要素のみを削除せずに返します。

スタックの最上位要素の位置を記録し、新しい要素を追加できる場所をマークするために、変数トップ。スタックにプッシュされたとき 要素がスタックから削除されると変数は増加し、要素がスタックからポップされると変数は減少します。

push()、pop()、および Peak( ) はスタックの 3 つの主要なメソッドですが、スタックには他にもメソッドがあります。属性を使用した一般的な操作

stack:

  Stack()   建立一个空的栈对象
  push()    把一个元素添加到栈的最顶层
  pop()     删除栈最顶层的元素,并返回这个元素
  peek()    返回最顶层的元素,并不删除它
  isEmpty() 判断栈是否为空
  size()    返回栈中元素的个数
#-*- coding:?UTF-8 -*-
__author__ = 'Administrator'
#python的list对象模拟栈的实现
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 チュートリアル 」 「

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

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