【12】python 棧型數據結構模擬、隊列型數據結構模擬
阿新 • • 發佈:2018-10-21
出隊 分隔 ima bubuko pop nbsp info image img
即是先進先出的一種數據結構
一、壓棧操作模擬
#__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‘]) ‘‘‘
【12】python 棧型數據結構模擬、隊列型數據結構模擬