1. 程式人生 > >【12】python 棧型數據結構模擬、隊列型數據結構模擬

【12】python 棧型數據結構模擬、隊列型數據結構模擬

出隊 分隔 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 棧型數據結構模擬、隊列型數據結構模擬