棧和隊列概觀:
使用最廣泛的兩種輔助性數(shù)據(jù)結(jié)構(gòu),主要用于數(shù)據(jù)緩存阳懂。
存入和取出數(shù)據(jù)時梅尤,不能指定數(shù)據(jù)的位置或內(nèi)容,只支持默認方式的操作岩调。
棧和隊列的差異在于存入和取出數(shù)據(jù)元素的順序巷燥。棧后進先出(LIFO),隊列先進先出(FIFO)誊辉。
棧的后進先出意味著各種重要操作都在表的一端進行矾湃,從效率考慮:對順序表,應(yīng)該在尾端操作堕澄;對鏈接表邀跃,應(yīng)該在首端操作。
隊列的先進先出意味著在表的一端插入蛙紫,另一端刪除拍屑。對于鏈接表,加了尾節(jié)點指針后坑傅,尾端插入具有O(1)復(fù)雜度僵驰。對于順序表,需要采用循環(huán)順序表的技術(shù)唁毒。
棧和隊列的應(yīng)用包括支持程序設(shè)計語言中的函數(shù)調(diào)用和遞歸函數(shù)實現(xiàn)蒜茴、狀態(tài)空間搜索等大量具體應(yīng)用。