Ⅰ 編程為什麼要使用棧結構而不要隊列
用棧大多是為了保存現場,比如在遞歸消除中,在二叉樹前中後遍歷中.
而隊列大多是為了保存一個狀態,一邊出隊一邊進隊進行掃描,比如二叉樹的層次遍歷以及圖的BFS.
兩者各有各的用處,而可以很明顯的觀察到,前者的用途要比後者廣泛一些.
編程是一段很有意思的旅程,LZ加油
Ⅱ 棧和隊列數據結構的特點,什麼情況下用到棧,什麼情況下用到隊列(各舉3個例子)
棧:特點就是一個先進後出的結構。
隊列:特點就是一個先進先出的結構。
//一般只要你滿足這個特點就可以稱之為棧或隊列。
棧的應用:非常廣泛,在CPU內部就有提供棧這個機制。主要用途:函數調用和返回,數字轉字元,表達式求值,走迷宮等等。在CPU內部棧主要是用來進行子程序調用和返回,中斷時數據保存和返回。在編程語言中:主要用來進行函數的調用和返回。可以說在計算機中,只要數據的保存滿足先進後出的原理,都優先考慮使用棧,所以棧是計算機中不可缺的機制。
隊列的應用:隊列主要用在和時間有關的地方,特別是操作系統中,隊列是實現多任務的重要機制。windows中的消息機制就是通過隊列來實現的。進程調度也是使用隊列來實現,所以隊列也是一個重要的機制。只要滿足數據的先進先出原理就可以使用隊列。
Ⅲ 編程中的隊列有什麼用
隊列是一個有序列表(ordered list),而且是先進先出(FIFO)的,主要動作有添加(Addq)和刪除(Delq)。只要是要求先進先出的場合都可以使用隊列,比如列印機中的列印隊列,鍵盤的輸入緩沖區也需要隊列。在樹的遍歷中,層次遍歷也需要使用隊列。
Ⅳ 棧和隊列在實際編程中的應用有哪些
模擬遞歸,表達式化成後綴,括弧匹配等等