程式 = 資料結構 + 演算法
資料結構 = 邏輯結構 + 物理結構(儲存結構) + 運算
根據三種方式劃分有:
邏輯結構 有 :線性結構, 非線性結構
物理結構(儲存結構) 有 :順序儲存結構,鏈式儲存結構,索引儲存結構,雜湊儲存結構
運算 : 插入,刪除,檢索,更新,排序等
演算法 有 : 遞迴,回溯,貪婪,分治,動態規劃
線性結構
特徵:資料元素(結點)之間存在著一對一的關係,其結構中僅有乙個開始結點和終點結點,其餘結點僅有乙個直接前趨和乙個直接後繼
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...