鍊錶(C語言)

2021-05-07 22:14:15 字數 679 閱讀 4253

鍊錶  是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點(鍊錶中每乙個元素稱為結點)組成,結點可以在執行時動態生成。每個結點包括兩個部分:乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域。

相比較順序結構,鍊錶比較方便插入和刪除操作。

線性表的鏈式儲存表示的特點是用一組任意的儲存單元儲存線性表的資料元素(這組儲存單元可以是連續的,也可以是不連續的)。因此,為了表示每個資料元素 與其直接後繼資料元素 之間的邏輯關係,對資料元素 來說,除了儲存其本身的資訊之外,還需儲存乙個指示其直接後繼的資訊(即直接後繼的儲存位置)。由這兩部分資訊組成乙個"結點"(如下圖所示),表示線性表中乙個資料元素 。

擴充套件

根據情況,也可以自己設計鍊錶的其它擴充套件。但是一般不會在邊上附加資料,因為鍊錶的點和邊基本上是一一對應的(除了第乙個或者最後乙個節點,但是也不會產生特殊情況)。不過有乙個特例是如果鍊錶支援在鍊錶的一段中把前和後指標反向,反向標記加在邊上可能會更方便。

其中儲存資料元素資訊的域稱作資料域(設網域名稱為data),儲存直接後繼儲存位置的域稱為指標域(設網域名稱為next)。指標域中儲存的資訊又稱做指標或鏈。

由分別表示,,…, 的n 個結點依次相鏈構成的鍊錶,稱為線性表的鏈式儲存表示,由於此類鍊錶的每個結點中只包含乙個指標域,故又稱單鏈表或線性鍊錶.

c語言 鍊錶 C語言鍊錶例項 玩轉鍊錶

下圖為最一簡單鍊錶的示意圖 第 0 個結點稱為頭結點,它存放有第乙個結點的首位址,它沒有資料,只是乙個指標變數。以下的每個結點都分為兩個域,乙個是資料域,存放各種實際的資料,如學號 num,姓名 name,性別 和成績 score 等。另乙個域為指標域,存放下一結點的首位址。鍊錶中的每乙個結點都是同...

c語言鍊錶 鍊錶

在儲存一大波數的時候,我們通常使用陣列,但有時候陣列顯得不夠靈活,比如有一串已經從小到大排序好的數 2 3 5 8 9 10 18 26 32 現在需要往這串數中插入6使其得到的新序列仍符合從小到大排列。如果我們使用陣列來實現這一操作,則需要將8和8後面的數字都依次往後挪一位,如果你覺得這幾個數不算...

c語言 鍊錶 C語言之鍊錶入門

鍊錶三要素 1 頭指標 head 是用來說明鍊錶開始了,頭指標就代表鍊錶本身 所以以後要訪問鍊錶,就要訪問頭指標 2 結點 node 鍊錶中每乙個結構體變數 3 尾指標 用來說明鍊錶的結束 它是乙個空指標,null include includetypedef struct stud 定義了乙個結構...