1. 程式人生 > >python列表練習-用python實現棧和佇列

python列表練習-用python實現棧和佇列

1.棧的工作原理:先進後出
入棧
出棧
棧頂元素
棧的長度
棧是否為空

stack = []

info = """
        棧操作
     1.入棧
     2.出棧
     3.棧頂元素
     4.棧的長度
     5.棧是否為空
"""
while True:
    print(info)
    choice = input('請輸入選擇:')
    if choice == '1':
        item = input('入棧元素:')
        stack.append(item)
        print('元素%s入棧成功' %(item))
    elif choice == '2':
        # 先判斷棧是否為空
        if not stack:
            print('棧為空,不能出棧')
        else:
            item = stack.pop()
            print('元素%s出棧成功' %(item))
    elif choice == '3':
        if len(stack) == 0:
            print('棧為空,無棧頂元素')
        else:
            print('棧頂元素為%s' %(stack[-1]))
    elif choice == '4':
        print('棧的長度為%s' %(len(stack)))

    elif choice == '5':
        if len(stack) == 0:
            print('棧為空')
        else:
            print('棧不為空')
    elif choice == 'q':
        print('歡迎下次使用')
        break
    else:
        print('請輸入正確的選擇')

在這裡插入圖片描述
在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

2.佇列的工作原理:先進先出
入隊
出隊
隊頭
隊尾
佇列是否為空
顯示佇列元素

stack = []
while True:
    info = """
        1.入隊
        2.出隊
        3.隊頭
        4.隊尾
        5.佇列是否為空
        6.顯示佇列元素
    """
    print(info)
    chioce = input('請選擇:')
    if chioce == '1':
        instack = input('請輸入入隊元素:')
        stack.insert(0,instack)
        # 因為先進後出,所以每次入棧元素都應該放在索引為1的地方
        print('%s入隊成功' %(instack))
    if chioce == '2':
        if len(stack) == 0:
            print('佇列為空,無法出隊')
        else:
            item = stack.pop()
            print('%s出隊成功' %(item))

    if chioce == '3':
        if not stack:
            print('佇列為空,沒有隊頭元素')
        else:
            print('隊頭元素為:%s' %(stack[-1]))
            # 隊頭應為最先出隊的元素,即為索引最後的元素
    if chioce == '4':
        if not stack:
            print('佇列為空,沒有隊尾元素')
        else:
            print('隊尾元素為:%s' %(stack[0]))
            # 隊尾應為最後出隊的元素,即為索引的第一個元素
    if chioce == '5':
        if not stack:
            print('佇列為空')
        else:
            print('佇列不為空')
    if chioce == '6':
        if not stack:
            print('佇列為空,沒有元素')
        else:
            print('佇列為:%s' %(stack[:]) )
    if chioce == 'q':
        break
else:
    print('請輸入正確的選擇')

在這裡插入圖片描述在這裡插入圖片描述在這裡插入圖片描述在這裡插入圖片描述