栈和队列(python代码)
生活随笔
收集整理的這篇文章主要介紹了
栈和队列(python代码)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.棧【Stack】:是只限定在表的一端進行數據插入和刪除的線性表
2.隊列【Queue 】:是在表的一端進行數據插入,在表的另一端進行數據的刪除的線性表
3.棧和隊列都是線性表:線性表只是一種線性結構,內存中存儲數據和刪除數據的方式
4.棧和隊列的相同點和不同點
? ? (1)相同點:
? ? ? ? ? ? ? ①:棧和隊列都是線性表
? ? ? ? ? ? ? ②:?插入數據都是表尾進行的
? ? ? ? ? ? ? ③:?都可以通過順序結構和鏈式結構實現
? ? ? ? ? ? ? ④:?插入和刪除的時間復雜度和空間復雜度是一樣的
? ? (2)不同點:
? ? ? ? ? ? ?①:刪除數據的位置不同,棧在表尾刪除,隊列在表頭刪除
? ? ? ? ? ? ?②:?應用場景不同:
? ? ? ? ? ? ? ? ? ? ? ?a.常用棧的場景:變量的定義、運算表達式、函數的調用、深度優先遍歷等
? ? ? ? ? ? ? ? ? ? ? ?b.常見的隊列的應用場景:計算機中各種資源的管理和分配,廣度優先遍歷等
5. 棧的插入和刪除過程:
# 棧: 列表的底層維護了一個棧結構stack = [] print(stack)# 入棧【向棧中存數據】 : append stack.append(1) print(stack) stack.append(2) print(stack) stack.append(3) print(stack) stack.append(4) print(stack)# 出棧【從棧中取數據】:pop stack.pop() print(stack) stack.pop() print(stack) stack.pop() print(stack) stack.pop() print(stack)""" 特點:先進后出,后進先出 """運行結果:
?5.隊列的插入和刪除的過程
# 隊列 import collections# 創建一個空隊列 queue = collections.deque() print(queue)# 入隊【向隊列中添加數據】:append queue.append(1) print(queue) queue.append(2) print(queue) queue.append(3) print(queue) queue.append(4) print(queue)# 出隊【向隊列中獲取數據】:popleft:表頭/ pop:表尾 queue.popleft() print(queue) queue.popleft() print(queue) queue.popleft() print(queue) queue.popleft() print(queue)""" 特點: 先進先出,后進后出 """運行結果:
總結
以上是生活随笔為你收集整理的栈和队列(python代码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5.Java中的常量以及常量的分类
- 下一篇: Python中的高阶函数map