陣列和鍊錶

2022-08-20 20:36:09 字數 496 閱讀 3223

前言: 

陣列是最簡單的資料機構,也就是順序表,特點:簡單粗暴,靈活性不好(當然可以使用柔性陣列來彌補這一不足)。鍊錶的出現就是為了解決陣列靈活性不夠問題,但是從根本上來說,特點是一樣的,都是用來儲存資料。陣列用得很多,下面主要介紹鍊錶的使用。

鍊錶分為單鏈表,雙鏈表,迴圈鍊錶。鍊錶的每個元素稱為乙個節點(node),每個節點都包含兩部分,第一部分是資料域,用來儲存使用者需要的資料data,第二部分是指標域,用來儲存下乙個節點的位址,也為稱指向下乙個節點的指標。 (頭尾節點除外,鍊錶的頭指標指向第乙個節點,鍊錶的尾部指標域為null,不指向任何節點。)

鍊錶中的每乙個節點都是同一種資料型別,非常特殊的一點就是結構體內的指標域的資料型別使用了未成功定義的資料型別,這是c語言中唯一規定可以先使用後定義的資料型別,如:

struct

node

;

例如,乙個存放學生學號和成績的節點:

struct

stu

陣列和鍊錶

陣列名代表陣列的首位址,陣列的下標其實代表陣列中某個元素相對首位址的偏移量,陣列的第乙個元素是零偏移,因此從 0 開始。上面其實也只是乙個解釋,c 語言設計者用零開始編號,後來的各種語言也便紛紛效仿,因此就形成了這個習慣。單鏈表只支援乙個方向的訪問,第乙個節點稱為頭結點,最後乙個節點稱為尾結點。迴圈...

陣列和鍊錶

術語 在講述陣列和鍊錶之前,我們先了解乙個術語 索引和大o表示法。索引指元素的位置,因此我們不說 元素20的位置為1 而說 元素20位於索引1處 大o表示法指出演算法的速度有多快,演算法執行時間的增速。如o n 中的n指的是 運算元 也就是演算法執行時操作了幾次。有鑑於此,我們不僅要知道演算法需要多...

陣列和鍊錶

陣列名代表陣列的首位址,陣列的下標其實代表陣列中某個元素相對首位址的偏移量,陣列的第乙個元素是零偏移,因此從 0 開始。上面其實也只是乙個解釋,c 語言設計者用零開始編號,後來的各種語言也便紛紛效仿,因此就形成了這個習慣。單鏈表只支援乙個方向的訪問,第乙個節點稱為頭結點,最後乙個節點稱為尾結點。迴圈...