Pythonはスタックの構造を実装できますか?

スタック(スタック)は、スタックとも呼ばれ、操作が制限された線形テーブルです。リストを使用してPythonで実装できます。

スタックとは何ですか?

スタック(スタック)は、スタックとも呼ばれ、操作が制限された線形テーブルです。制限は、テーブルの一方の端でのみ挿入および削除操作が許可されることです。この端はスタックの一番上と呼ばれ、もう一方の端はスタックの一番下と呼ばれます。新しい要素をスタックに挿入することは、プッシュ、プッシュ、またはプッシュとも呼ばれます。新しい要素をスタックの最上位の要素の上に配置して、新しい最上位の要素にします。スタックから要素を削除することは、スタックの作成またはスタックを解除すると、スタックの最上位の要素が削除され、隣接する要素が新しい最上位の要素になります。

達成する方法は?

Pythonでリストを使用して、次のことを実現します。

#! /usr/bin/env python 
# スタックをシミュレートするリストを定義する
stack =[] 
# 押す,リストの付録を呼び出す()リストの最後に機能が追加されました,strip()先頭と末尾のスペースを削除するパラメータはありません
def pushit(): 
 stack.append(raw_input('Enter new string: ').strip()) 
# スタックを解除する,中古ポップ()関数
def popit():iflen(stack)==0: 
 print 'Cannot pop from an empty stack!'else: 
 print 'Removed [', stack.pop(),']'
# カレンダースタック
def viewstack(): 
 print stack 
# CMDは辞書の使用です
CMDs ={'u': pushit,'o': popit,'v': viewstack} 
# prはプロンプト文字です
def showmenu(): 
 pr =""" 
 p(U)sh 
 p(O)p(V)iew(Q)uit 
 Enter choice:"""
 while True:while True:try: 
 # 初使用ストリップ()スペースを削除する,最初の文字を小文字に変換する
 choice =raw_input(pr).strip()[0].lower()except(EOFError, KeyboardInterrupt, IndexError): 
 choice ='q'
 print '\nYou picked: [%s]'% choice 
 if choice not in'uovq': 
 print 'Invalid option, try again'else:break
# CMDs[]入力の選択に応じて、辞書からの対応する値に対応します,たとえば、uと入力します,pushitとして辞書から値を取得します,pushitを実行する()プッシュ操作
 if choice =='q':break
 CMDs[choice]() 
# このファイルから入力されているかどうかを確認します,呼ばれる代わりに
if __name__ =='__main__':showmenu()

コンテンツ拡張の例:

# - *- coding:utf-8-*-
# __ author__ :kusy
# __ content__:ファイル説明
# __ date__:2018/9/3017:28classMyStack(object):
 def __init__(self):
 self.stack_list =[]
 self.count =0

 # スタックを作成する
 def create_stack(self):return self.stack_list

 # スタックに価値を追加する
 def push(self, value):
 self.stack_list.insert(0,value)
 self.count +=1

 # スタックの最上位要素の値を返します
 def peek(self):if self.count:return self.stack_list[0]

 # 一番上の要素を削除します
 def pop(self):
 self.stack_list.pop(0)
 self.count -=1

 # リターンスタックが空です
 def is_empty(self):return self.count ==0

 # スタックの内容を印刷する
 def print_all(self):for sl in self.stack_list:print(sl)if __name__ =='__main__':
 ms =MyStack()
 ms.create_stack()
 ms.push(1)
 ms.push(2)
 ms.push(3)print('スタック要素:')
 ms.print_all()print('トップ要素:',ms.peek())
 ms.pop()print('一番上の要素が削除された後:')
 ms.print_all()print('スタックが空かどうか:','はい'if ms.is_empty()else'番号')print('---要素の削除を続ける')
 ms.pop()print('---要素の削除を続ける')
 ms.pop()print('スタックが空かどうか:','はい'if ms.is_empty()else'番号')

結果は以下のとおりです。

C:\Users\suneee\AppData\Local\Programs\Python\Python36\python.exe E:/wangjz/PyWorkSpace/LearnPython/PY0929/stack.py
スタック要素:321
トップ要素:3
一番上の要素が削除された後:21
スタックが空かどうか:番号
- - - 要素の削除を続ける
- - - 要素の削除を続ける
スタックが空かどうか:はい

Process finished with exit code 0

これまで、Pythonがスタックの構造を実装できるかどうかに関するこの記事を紹介しました。スタックのPython実装の構造に関連するその他の条件については、ZaLou.Cnを検索してください。

Recommended Posts

Pythonはスタックの構造を実装できますか?
python辞書の値を変更できますか?
Pythonの基盤を統合する(4)
Python(7)の基盤を統合する
Python(6)の基盤を統合する
Python(5)の基盤を統合する
Pythonの基盤を統合する(3)
pythonでのwheelの使用法
Pythonは中国語の4つの車輪を処理します
地主取引のPythonシミュレーション
Pythonの用途は何ですか
Python文字列プーリングの前提
Python3.8の新機能の秘密
Pythonの父がMicrosoftに加わる
python accesshdfsの操作
pythonでのタプルの使用法
pythonを実行するメソッドを終了します
pythonでのrbの意味を理解する
pythonインタラクティブモードの基本を学ぶ
pythonの必須パラメーターは何ですか
pythonの下部にあるロジスティック回帰
Python3クローラーでのAjaxの使用
PythonはTowerofHanoiゲームを解決します
pythonの複数のバージョンの競合を解決します
python変数の範囲は何ですか
Pythonは分数シーケンスの合計を実装します
Pythonの基礎を学ぶ2日間
pythonのid関数は何ですか
python3のピップパスはどこにありますか
Python言語の本質:Itertoolsライブラリ
python言語の利点は何ですか
pythonインスタンス化オブジェクトの特定のメソッド
python3はマスク描画の機能を実現します
python開発の見通しは何ですか
pythonの関数本体は何ですか
pythonはどのような作業を行うことができますか
pythonインポートライブラリの特定の方法
pythonの複数のバージョンの競合を解決します
pythonでのadbの機能は何ですか
Python super()メソッドの原理の詳細な説明
javaとpythonの構文の違い
Python3.9の7つの機能
Pythonは学生管理システムの開発を実現します
PythonはDoudizhuでカードのシャッフルを実装します
pythonでのリストの意味と使用法
起動エラーを実行しているpythonの問題を解決します
Pythonはスネークゲームのソースコードを実装しています
Pythondecimalモジュールの使用法の詳細な説明
Pythonレッスン32-スタック
27歳でパイソンを学ぶのはどうですか?
2.1 Pythonインタープリター(pythonインタープリター)
ubuntuでpythonをアンインストールした結果、非常に
pythonデータ構造
Pythonは釣りマスターのゲーム実装を書きます
[898] pythonは2つのリストの共通部分を取得します|ユニオン|違い
Python関数パラメータ分類の原理の詳細な説明
エンタープライズ言語に対するpythonの利点は何ですか
Python2とPython3の違いの簡単な要約
Pythonタイマースレッドプールの原理の詳細な説明
pythonのコンパイルとsslのインストールの問題を解決します
Pythonインターフェース開発の実装手順の詳細な説明