資料結構 演算法 筆記1 概覽

2022-03-29 16:21:33 字數 1411 閱讀 2202

程式 = 資料結構 + 演算法

資料結構 = 邏輯結構 + 物理結構(儲存結構) + 運算

根據三種方式劃分有:

邏輯結構 有 :線性結構, 非線性結構

物理結構(儲存結構) 有 :順序儲存結構,鏈式儲存結構,索引儲存結構,雜湊儲存結構

運算 : 插入,刪除,檢索,更新,排序等

演算法 有 : 遞迴,回溯,貪婪,分治,動態規劃

線性結構

特徵:資料元素(結點)之間存在著一對一的關係,其結構中僅有乙個開始結點和終點結點,其餘結點僅有乙個直接前趨和乙個直接後繼

1.資料元素之間滿足唯一的線性關係。

2.每個資料元素(除第乙個和最後乙個外)只有乙個直接前趨和乙個直接後繼。

線性表 (順序表,鍊錶,棧,佇列)

1.最簡單和最常用的一種資料結構

2.由n個資料元素(結點)組成的有限序列

順序表1.線性表的資料元素按邏輯次序依次存入一組位址真實的儲存單位。

鍊錶 (單向鍊錶,雙向鍊錶,迴圈鍊錶)

1.線性表的資料元素除了儲存自身的資訊以外,還需要乙個儲存指示器後繼元素,儲存位置的指標。

2.乙個結點的儲存結構為data|next,n個結點鏈成乙個鍊錶。

棧 (stack)

1.限定在表的一端進行插入和刪除運算的線性表

2.遵循後進先出(last in first out)原則

佇列 (quene)  

按儲存方式劃分:順序佇列,鏈佇列,環形佇列

1.只允許在表的一端進行元素插入,而在另一端進行元素刪除

2.遵循先進先出(first in first out)原則

非線性結構

特徵:資料元素之間存在一對多或多對多的關係,即乙個結點可能有多個直接前趨和多個直接後繼

樹形結構 

二叉樹 (二叉樹,滿二叉樹,完全二叉樹,最優二叉樹)

按儲存方式劃分:順序儲存結構,鏈式儲存結構

1.每個結點至多只有兩個孩子,而其子樹有左右之分的有序樹。

2.符合三大性質(具體後續文章說明)

圖型結構 (graph)

遍歷方式:深度優先搜尋遍歷,廣度優先搜尋遍歷

儲存結構:鄰接矩陣表示法,鄰接表表示法

1.結點之間的關係是任意的。

2.特殊的樹形結構

多維陣列

按記憶體表現形式劃分: 行向量,列向量

1.線性表的推廣

2.由於計算機的記憶體結構是一唯的,所以二位資料使用行向量或列向量表示

廣義表結點資料結構: tag|data/slink|link

tag: 用來區分當前結點是原子還是子表

data/slink 存放原子資料 或者 子表位址

1.帶有層次的非線性結構

2.通常使用鏈式儲存結構

3.每個結點由三個域構成,其中tag是乙個標誌位,用來區分當前結點是原子還是子表。

資料結構 概覽

資料結構 在電腦科學資料結構是一種資料組織和儲存格式,支援非常高效。訪問和修改。1 2 3 更準確地說,乙個資料結構是資料值的集合,它們之間的關係,可以應用到的函式或運算元據。4 資料結構可以實現乙個或多個特定的抽象資料型別 adt 指定的操作可以在乙個資料結構和執行計算複雜度這些操作。相比之下,乙...

資料結構 概覽

概念 資料 是對客觀事物的符號表示。能輸入到計算機中並且被電腦程式處理的符號的總稱 資料元素 描述資料的基本單位 資料項 描述資料的最小單位 資料型別 數值,字元等對資料分成不同的型別 抽象資料型別 由資料物件,資料關係和基本操作三部分組成,可用三元組 d,s,p 表示 資料結構 資料和結構兩部分,...

線性資料結構概覽

陣列 array 是一種線性表資料結構。它用一組連續的記憶體空間,來儲存一組具有相同型別的資料。陣列支援隨機訪問,根據下標隨機訪問的時間複雜度為 o 1 arraylist 無法儲存基本型別,比如 int long,需要封裝為 integer long 類,而 autoboxing unboxing...