資料結構學習筆記

2021-08-28 03:25:42 字數 1542 閱讀 1311

1.線性表:n個資料元素的有限序列===匯集物件(有且僅有乙個直接前驅和後繼)

①順序表:讀取資料=>t(n)=o(1),插入或者刪除=>t(n)=o(n)

②鍊錶:單鏈表(單向),結點(資料域,指標域(只有乙個)指向後繼);

雙鏈表(雙向),結點(資料域,指標域(兩個),乙個指向前驅,乙個指向後繼)

迴圈鍊錶(環形),特點最後乙個結點的指標指向頭結點,從表中的任意乙個結點都可以找到表中其他結點

note:頭指標=>頭結點=>第乙個結點=>……,頭結點可以不儲存任何東西,也可以儲存線性表的長度等附加資訊

2.棧和佇列:同屬線性結構,線性表(線性表的子集)因此具有線性表的性質,不同之處在於操作受限

①棧:僅限在表尾進行插入和刪除操作,表尾為棧頂,表頭為棧底,特點是依次序進棧,後進先出出棧

②佇列:只允許一端插入,另一端刪除,如排隊一樣,特點是先進先出

3.字串:由零個或多個字元組成的受限序列,其邏輯結構與線性表極為相似,不同在於字串處理的物件為字符集兒線性表可以為任意元素物件(堆:以一組位址連續的儲存單元儲存字串序列,其儲存空間是在程式的執行過程中動態分配的)

note:字串匹配(模式匹配)經典演算法:kmp

4.陣列:定長的線性表,其資料元素亦是,一般不做插入和刪除操作,儲存方式:①列序②行序

5.廣義表:採用鏈式儲存結構(組成:院子或列表),非線性的資料結構,線性表的推廣

6.樹和二叉樹:非線性資料結構,是以分支關係定義的層次結構

note:樹有且僅有乙個根節點,其餘結點分為m個互不相交的有限集,每個集有是乙個樹成為子樹

二叉樹:每個結點最多只有兩顆子樹,且子樹有左右之分,次序不能任意顛倒。

重要性質:①二叉樹第i層至多有2^(i-1)個結點

②深度為k的二叉樹結點數至多為2^k - 1(總結點數n = n0 + n1 + n2 )

③任意二叉樹,終端結點即葉子也即度為零的結點數和度為2的結點數的關係:n0 = n2 + 1

④如果結點為i ,那麼其左子樹為2i(偶數),右子樹為2i+1

……儲存:①順序儲存,有根據完全二叉樹的順序編號,自上而下,由左至右儲存在位址連續的儲存單元

對於一般二叉樹而言要按照完全二叉樹編號然後儲存,補進的部分只佔單元不存資料(浪費空間)

②鏈式儲存:為了解決順序儲存補進空位影響效率。1)二叉鍊錶:資料域,左右指標域;2)三叉

鍊錶:叫二叉鍊錶多了乙個雙親指標域(為了方便找到雙親)

遍歷:①先序遍歷:dlr

②中序遍歷:ldr

③後序遍歷:lrd

④層序遍歷:從上而下,同一層中從左至右

結論::先序和中序遍歷課確定唯一二叉樹

後序和中序遍歷可確定唯一二叉樹

資料結構學習筆記

資料結構概述 定義我們如何把現實中大量而複雜的問題以特定的資料型別和特定的儲存結構 儲存到主儲存器 記憶體 中,以及在此基礎上為實現某個功能 比如查詢摸個 元素,刪除某個元素,對所有元素進行排序 而執行的相應操作,這個相應 的操作也叫演算法 資料結構 個體 個體的關係 演算法 對儲存資料的操作 演算...

資料結構學習筆記

資料結構學習筆記 程式 資料結構 演算法 資料結構 資料 結構 結構的本質是關係 資料之間的關係從不通風層面上分為邏輯關係和物理關係 演算法的設計要依據資料的邏輯關係 演算法的實現要依據資料的物理關係 物理關係是邏輯關係的基礎和載體 演算法實現時需要先依據問題抽象出資料模型,即初步確定待處理資料的邏...

資料結構 學習筆記

一 鍊錶 1 基本特徵 記憶體節點是不連續的,節點之間通過指標彼此關聯。2 基本操作 追加 插入 刪除 遍歷 偽隨機訪問!3 實現要點 1 追加 新建節點存放資料,令新節點的前指標指向當前尾節點,新節點的後指標為null,令當前尾節點的後指標指向新節點,尾指標指向新節點。考慮在空煉表中追加第乙個節點...