棧和隊列的存儲結構、線性結構和非線性結構


棧和隊列的存儲結構

棧的練習題

棧的順序存儲結構

定義:

棧是限定只能在表尾刪除和插入操作的線性表。

允許插入和刪除的一端稱為棧頂(top)。另一端稱為棧底(button),棧又稱先進后出的線性表

棧的插入操作稱為進棧,也稱為壓棧、入棧。

棧的刪除操作稱為出棧,也稱彈棧

棧的抽象數據結構

由於棧本身就是線性表,所以線性表的操作特性他都具備,針對它的特殊性,在它的操作上可能會有一些變化。將進棧和出棧分別改名為push和pop

由於棧本身是一個線性表,所以線性表的順序存儲結構和鏈式存儲結構同樣適用於棧

隊列的存儲結構

定義

隊列數只允許在一端進行插入操作,另一端進行刪除操作的線性表

隊列是一種先進進出的線性表。允許插入的一端稱為隊尾,允許刪除的一端,稱為對頭

隊列的順序存儲結構

順序隊列的存儲不足引出---循環隊列

線性結構和非線性結構

線性結構

線性結構是一個有序數據元素集合。常用的線性結構有:線性表、棧、隊列、數組、雙隊列、串。

線性結構作為最常用的數據結構,其特點是數據元素之間一對一的線性關系

線性結構擁有兩種不同的存儲結構,即順序存儲結構和鏈式存儲結構。順序存儲的線性表稱為順序表,順序表中的元素是連續的,鏈式存儲的線性表稱為鏈表鏈表不一定連續元素結點中存放數據元素以及相鄰元素的地址信息

線性結構中存在兩種操作受限的使用場景,即隊列和棧。棧的操作只能在線性表的一端進行,就是我們常說的先進后出(FILO),隊列的插入操作在線性表的一端進行而其他操作在線性表的另一端進行,先進先出(FIFO),由於線性結構存在兩種存儲結構,因 此隊列和棧各存在兩個實現方式。

非線性結構

非線性結構,其邏輯特征是一個結點元素可能有多個直接后繼。常見的非線性結構有:二維數組,廣義表,樹(二叉樹)

非線性結構中各個數據元素不再保持在一個線性序列中,每個數據元素可能與零個或者多個其他數據元素發生聯系。根據關系的不同,可分為層次結構和群結構

數據結構

數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在一種或多種特定關系的數據元素的集合。通常情況下,精心選擇的數據結構可以帶來更高的運行或者存儲效率。數據結構往往同高效的檢索算法和索引技術有關

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM