1、定義
鍊錶是一種資料結構,採用動態分配儲存單元方式,與陣列相比,有效節省儲存空間。
鍊錶都有頭指標變數head , 它用於儲存指向鍊錶的第乙個元素,即用於存放鍊錶第乙個元素的位址。
鍊錶中的每乙個結點都包括資料域和指標域
鍊錶尾指標指向null
注:鍊錶的訪問都是通過指標變數從頭結點開始
用於鍊錶中的結點是乙個結構體型別,結點格式:
struct 結構體名
定義資料成員;
struct 結構體名 *指標變數名 ;
struct student
;struct student a,*p ;
2、動態儲存分配函式
(1) malloc( )函式
格式: malloc (size)
其作用是在記憶體的動態儲存區中分配乙個長度為size的連續空間。申請成功此函式的返回值是分配區域的起始位址,且返回的型別為void型,申請失敗,返回null;
eg :
struct student *p =(struct student *)malloc(sizeof(struct student));
(struct student *) 解釋:強轉換為指那個位址的的型別,因為*p 為struct student 型別,故強轉換為(struct student *)
(2)
free()函式
格式: free(p);
作用:釋放malloc( ) 申請的空間
c語言 鍊錶 C語言鍊錶例項 玩轉鍊錶
下圖為最一簡單鍊錶的示意圖 第 0 個結點稱為頭結點,它存放有第乙個結點的首位址,它沒有資料,只是乙個指標變數。以下的每個結點都分為兩個域,乙個是資料域,存放各種實際的資料,如學號 num,姓名 name,性別 和成績 score 等。另乙個域為指標域,存放下一結點的首位址。鍊錶中的每乙個結點都是同...
c語言鍊錶 鍊錶
在儲存一大波數的時候,我們通常使用陣列,但有時候陣列顯得不夠靈活,比如有一串已經從小到大排序好的數 2 3 5 8 9 10 18 26 32 現在需要往這串數中插入6使其得到的新序列仍符合從小到大排列。如果我們使用陣列來實現這一操作,則需要將8和8後面的數字都依次往後挪一位,如果你覺得這幾個數不算...
C語言鍊錶(1) by xhxh
鍊錶是一種常見的資料結構,與陣列相比,鍊錶能存放多種型別的資料,鍊錶的位址不是一塊連續的空間 並且它可以比較自由地進行增刪 陣列只能存放單一型別的資料,一旦宣告長度就不能更改,並且進行增刪非常麻煩,效率低下 首先,先定義乙個有乙個有效資料和指向自己的結構體 每個結構體的元素本身由兩部分組成 本身的資...