python列表練習-用python實現棧和佇列
阿新 • • 發佈:2018-12-03
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('請輸入正確的選擇')