用途:陣列,鍊錶,樹等一般用來作為資料儲存的工具,棧和佇列更多是用來作為構思程式演算法的輔助工具,用來執行某項特殊任務,例如handler中的messagequeue訊息佇列,activity棧等;
受限訪問:陣列可以通過下標隨機訪問或遍歷,而棧和佇列訪問是受限的,即在特定時刻只有乙個資料項可以被讀取或刪除;
抽象資料型別:棧和佇列的關鍵點在於它的邏輯特性,而非實現細節,它們可以用其他資料結構,如陣列,鍊錶等來實現;
棧和佇列插入和移除資料項的時間複雜度都是o(1);
只允許訪問最後插入的資料項,移除這個資料項後才可以訪問倒數第二個插入的資料項,依此類推,例如往乙個桶裡面放東西,取出的時候要先取出最上面的;
lifo:last in first out,後進先出
棧的容量通常比較小,一般用來作為演算法或應用程式中臨時儲存資料
通常提供的限定訪問方法是push()和pop(),這是比較通用的命名;
1. 先建立乙個棧的基類
2. 用陣列實現棧,後面講到鍊錶後,也將介紹用鍊錶實現棧
3. 對棧的使用
樹的儲存結構 資料結構和演算法41
讓程式設計改變世界 change the world by program 不好意思哈,這節課又需要大家搞腦子了。對於知識,你理解的越多,需要記住的就越少!上節課我們簡單的介紹了樹結構的強大,這節課我們來關心一下如何在記憶體中安排樹這種結構的存放。說到儲存結構,就會想到我們前面章節講過的順序儲存和鏈...
41 資料結構
現實世界的儲存,我們使用的工具和建模。每種資料結構有自己的優點和缺點,資料儲存的常用結構有 棧 佇列 陣列 鍊錶和紅黑樹。棧 stack,又稱堆疊,它是運算受限的線性表,其限制是僅允許在標的一端進行插入和刪除操作,不允許在其他任何位置進行新增 查詢 刪除等操作。簡單的說 採用該結構的集合,對元素的訪...
JS資料結構和演算法 棧
棧是一種後進先出的資料結構 其限制是僅允許在一端進行插入和刪除。這一端被稱為棧頂,另一端稱為棧底 lfo last in first out 後進入的元素第乙個彈出棧空間 向 個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從 個棧刪除元素又稱作岀棧,它是...