棧與佇列的作用

2021-04-21 20:12:58 字數 558 閱讀 5745

之所以會定義棧和佇列這樣的資料結構

是因為他們有兩大特性:

第一: 他們可以儲存程式執行路徑中各個點的資訊,以便用於回溯操作或其他需要訪問已經訪問過的節點資訊的操作。

比如: 棧用於解決迷宮問題,就是用到了若線路不通,需要回溯到已訪問過的結點,從那個結點再做一次與這次路徑不同的選擇。

第二: 先進後出 和 先進先出的 次序

先進後出次序 其實就是一種將序列反序操作的次序

先進先出次序 其實就是一種將序列順序操作的次序

比如: 利用棧的先進後出可以解決進製轉化問題 ,即:先將個位餘數進棧,再將十位餘數進棧,然後百位,千位 等 ,這樣出棧的時候順序就成了反序出棧,即:先千位,百位,然後十位,最後個位。

總結:從儲存資訊角度來看 定義棧和佇列資料結構是為了儲存遍歷所經過的路徑,亦即儲存遍歷過程中的每乙個結點的資訊,而不僅僅只是終結點的資訊。  而之所以要用棧或佇列儲存每個遍歷節點資訊,是因為在確定下一次的遍歷節點時,可能需要利用已經遍歷過的節點的資訊,比如回溯操作

從次序角度來看,定義棧是為了對序列實行一種反序操作

定義佇列 是為了對序列實行一種順序操作

棧與佇列 建立棧 佇列

陣列棧 完成stack createstack int maxelements 函式,該函式建立乙個棧,maxelements為與分配的棧空間大小 棧可用空間為array 0,maxelements 1 typedef int elemtype struct stackrecord typedef ...

棧 佇列與優先佇列

123 45 include stack int s 入棧 push 出棧 pop 取棧頂top 123 45 include queue int s 入隊 push 出隊 pop 取隊首元素 front 不刪除 123 4priority queue int pq 入隊 push 出隊 pop 取...

棧 佇列與優先佇列

123 45 include stack int s 入棧 push 出棧 pop 取棧頂top 123 45 include queue int s 入隊 push 出隊 pop 取隊首元素 front 不刪除 123 4priority queue int pq 入隊 push 出隊 pop 取...