【12】python 棧型資料結構模擬、佇列型資料結構模擬
阿新 • • 發佈:2018-11-07
一、壓棧操作模擬
#__author:"吉*佳" #date: 2018/10/21 0021 #function:棧 # 棧:即是先進後出的一種資料結構 # (1)模擬壓棧操作 stack=[] flag=True while flag: temp = input("請輸入壓棧元素[輸入0代表退出]:") if temp!=str(0): stack.append(temp) else: print('壓棧結束,棧內元素為:', stack) # 藉助flag退出while迴圈 flag=False '''輸出操作: 請輸入壓棧元素[輸入0代表退出]:1 請輸入壓棧元素[輸入0代表退出]:2 請輸入壓棧元素[輸入0代表退出]:3 請輸入壓棧元素[輸入0代表退出]:4 請輸入壓棧元素[輸入0代表退出]:5 請輸入壓棧元素[輸入0代表退出]:0 壓棧結束,棧內元素為: ['1', '2', '3', '4', '5'] '''
二、出棧模擬
#__author:"吉勇佳" #date: 2018/10/21 0021 #function:棧 # 棧:即是先進後出的一種資料結構 # (1)模擬壓棧操作 stack=[] flag=True while flag: temp = input("請輸入壓棧元素[輸入0代表退出]:") if temp!=str(0): stack.append(temp) else: print('壓棧結束,棧內元素為:', stack) # 藉助flag退出while迴圈 flag=False ''' 輸出操作: 請輸入壓棧元素[輸入0代表退出]:1 請輸入壓棧元素[輸入0代表退出]:2 請輸入壓棧元素[輸入0代表退出]:3 請輸入壓棧元素[輸入0代表退出]:4 請輸入壓棧元素[輸入0代表退出]:5 請輸入壓棧元素[輸入0代表退出]:0 壓棧結束,棧內元素為: ['1', '2', '3', '4', '5']''' print("************************分隔符*******************") tt=stack.pop() print("出棧元素",tt) print("棧內元素資訊:",stack) tt=stack.pop() print("出棧元素",tt) print("棧內元素資訊:",stack) tt=stack.pop() print("出棧元素",tt) print("棧內元素資訊:",stack) ''' 輸出 請輸入壓棧元素[輸入0代表退出]:1 請輸入壓棧元素[輸入0代表退出]:2 請輸入壓棧元素[輸入0代表退出]:3 請輸入壓棧元素[輸入0代表退出]:4 請輸入壓棧元素[輸入0代表退出]:5 請輸入壓棧元素[輸入0代表退出]:0 壓棧結束,棧內元素為: ['1', '2', '3', '4', '5'] ************************分隔符******************* 出棧元素 5 棧內元素資訊: ['1', '2', '3', '4'] 出棧元素 4 棧內元素資訊: ['1', '2', '3'] 出棧元素 3 棧內元素資訊: ['1', '2'] '''
入隊與出隊操作
佇列:
即是先進先出的一種資料結構
在python中,可以通過 collections模組。 queue = collections.deque()來實現入隊操作 。相應的出隊操作可以用queue.leftpop()即可
#__author:"吉*佳" #date: 2018/10/21 0021 #function:佇列 import collections # 佇列:即是先進先出的一種資料結構 # (1)模擬入隊操作。佇列有如下模組可以實現 queue = collections.deque() # 入隊 flag=True while flag: temp = input("請輸入入隊元素[輸入0代表退出]:") if temp!=str(0): queue.append(temp) else: print('入隊結束,隊內元素為:', queue) # 藉助flag退出while迴圈 flag=False ''' 輸出: 請輸入入隊元素[輸入0代表退出]:1 請輸入入隊元素[輸入0代表退出]:2 請輸入入隊元素[輸入0代表退出]:3 請輸入入隊元素[輸入0代表退出]:4 請輸入入隊元素[輸入0代表退出]:5 請輸入入隊元素[輸入0代表退出]:0 入隊結束,隊內元素為: deque(['1', '2', '3', '4', '5']) ''' # 出隊模擬 print("************************分隔符*******************") tt=queue.popleft() print("出隊元素",tt) print("隊內元素資訊:",queue) tt=queue.popleft() print("出隊元素",tt) print("隊內元素資訊:",queue) tt=queue.popleft() print("出隊元素",tt) print("隊內元素資訊:",queue) ''' 輸出: 請輸入入隊元素[輸入0代表退出]:1 請輸入入隊元素[輸入0代表退出]:2 請輸入入隊元素[輸入0代表退出]:3 請輸入入隊元素[輸入0代表退出]:4 請輸入入隊元素[輸入0代表退出]:5 請輸入入隊元素[輸入0代表退出]:0 入隊結束,隊內元素為: deque(['1', '2', '3', '4', '5']) ************************分隔符******************* 出隊元素 1 隊內元素資訊: deque(['2', '3', '4', '5']) 出隊元素 2 隊內元素資訊: deque(['3', '4', '5']) 出隊元素 3 隊內元素資訊: deque(['4', '5']) '''