1. 程式人生 > >【12】python 棧型資料結構模擬、佇列型資料結構模擬

【12】python 棧型資料結構模擬、佇列型資料結構模擬

一、壓棧操作模擬

#__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'])
'''