#!/usr/bin/env python
#定義乙個列表來模擬棧
stack =
def pu****():
#出棧,用到了pop()函式
def popit():
if len(stack) == 0:
print 'cannot pop from an empty stack!'
else:
print 'removed [',stack.pop(),']'
#編歷棧
def viewstack():
print stack
#cmds是字典的使用
cmds =
#pr為提示字元
def showmenu():
pr = """
p(u)sh
p(o)p
(v)iew
(q)uit
enter choice: """
while true:
while true:
try:
#先用strip()去掉空格,再把第乙個字元轉換成小寫的
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根據輸入的choice從字典中對應相應的value,比如說輸入u,從字典中得到value為pu****,執行pu****()進棧操作
if choice == 'q':
break
cmds[choice]()
#判斷是否是從本檔案進入,而不是被呼叫
if __name__ == '__main__':
showmenu()
棧 用python實現棧
分別採用有序列表 單向鏈和雙向鏈實現棧的推入 彈出等功能。方法一 有序列表的實現 直接利用python內建的list實現 class stack object def init self self.stack defpush self,item def peek self if self.isemp...
劍指Offer 用兩個棧實現佇列(Python)
用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。申請兩個棧stack1和stack2,stack1當作輸入,stack2當作pop。當stack2空的時候,將stack1進行反轉,並且輸入到stack2。方法一 class solution def init sel...
用棧實現佇列 用佇列實現棧
棧的特點 filo firstinlastout 僅能從棧頂插入,刪除元素。最基本的介面包括push 從棧頂壓入元素 pop 從棧頂彈出元素 佇列的特點 fifo firstinfirstout 僅能從隊頭刪除元素,從隊尾插入元素。最基本的介面包括enque 從隊尾插入元素 deque 從隊頭刪除元...