1. 線性表
線性表是一類最簡單、最常用的數(shù)據(jù)結構。簡單來說,一個線性表是n個元素的有限序列,其中n≥0,通常表示為(a1,a2,...,an)。其特點是,在非空的數(shù)據(jù)元素集合中:
(1)存在唯一的一個稱作“第一個”的元素
(2)存在唯一的一個稱作“最后一個”的元素
(3)除第一個元素外,集合中的每個元素均只有一個直接前驅
(4)除最后一個元素外,集合中的每個元素均只有一個直接后繼


最基本的節(jié)點結構

在單向鏈表中插入結點時,指針的變化情況

在單向鏈表中刪除結點時,指針的變化情況

在雙向鏈表插入結點時的指針變化情況

在雙向鏈表刪除結點時的指針變化情況
2. 棧和隊列
棧是只能通過訪問它的一端來實現(xiàn)數(shù)據(jù)存儲和檢索的一種線性數(shù)據(jù)結構。即,棧的修改是按照先進后出(FILO)的原則進行的。

棧的5種基本運算

兩個棧共享空間示意圖

鏈棧示意圖

隊列的頭、尾指針與隊列中元素之間的關系

循環(huán)隊列的頭、尾指針示意圖

鏈隊列示意圖

串值的鏈表存儲方式
3. 廣義表
廣義表是線性表的推廣,是由零個或多個單元素或子表所組成的有限序列。
-LS=(a1,a2,...,an)
其中ai(1≤i≤n)既可以是單個元素,又可以是廣義表,分別稱為原子和值表。

廣義表的鏈表結點結構

廣義表的存儲結構示意圖
4. 樹

樹的定義
注意:樹的定義是遞歸的,即一個樹由若干的子樹構成,而子樹又由更小的子樹構成。
樹的遍歷操作是樹中其他運算的重要基礎。

幾種二叉樹
很容易區(qū)分:與滿二叉樹結點一一對應的即為完全二叉樹,否則是非完全二叉樹。

二叉樹的順序儲存結構
顯然順序存儲結構對于完全二叉樹而言,既簡單又節(jié)省空間;但對一般的二叉樹則不適用。

二叉樹的鏈表存儲結構

二叉樹轉化為樹和森林
5. 圖
圖是一種比數(shù)更復雜的數(shù)據(jù)結構

有向圖和無向圖