C語言線性連結串列

向南的小企鵝發表於2020-11-03

線性表的鏈式儲存結構的特點

線性表的鏈式儲存結構的特點是用一組任意的儲存單元儲存線性表的資料元素(這組儲存單元可以是連續的,也可以是不連續的)。

因此為了表示每個資料元素與其直接後繼資料元素之間的邏輯關係之外,對一個資料元素來說,除了儲存本身的資訊之外還需儲存一個指示其後繼的資訊。

結點則是這兩部分資訊組成資料元素的儲存映像。一個節點包含了兩個域,分別為資料域指標域
資料域是儲存資料元素資訊的域。
指標域則是儲存直接後繼儲存位置的域。
指標域中儲存的資訊稱作指標和鏈。n個結點鏈構成一個連結串列,即為線性表的鏈式儲存結構。如果一個連結串列中的一個結點只包含一個指標域,故又稱其為線性連結串列或單連結串列。

頭指標

整個連結串列的存取應從頭指標開始進行,頭指標指示連結串列中的第一個結點的儲存位置。指標為資料元素之間的邏輯關係的映像,則邏輯上相鄰的兩個資料元素其儲存的物理位置不要求緊鄰,由此,這種儲存結構為非順序映像或鏈式映像。

單連結串列可由頭指標惟一確定,在C語言中可用結構指標來描述。

// 線性表的單連結串列儲存結構
typedef struct LNode 
{
	ElemType data;
	struct LNode *next;
}LNode,* Linklist;

假設La是Linklist型的變數,則La為單連結串列的頭指標,它指向表中第一個結點。若La為“空”, 即(La = NULL),則所表示的線性表為空表,長度n為“零”。有時候我們可以在單連結串列的第一個結點之前附設一個結點,稱之為頭結點。頭結點的資料域可以不儲存任何資訊,也可儲存如線性表的長度等類的附加資訊,頭結點的指標域儲存指向第一個結點的指標。

相關文章