單鏈表的概念和操作

2021-10-03 19:51:49 字數 2038 閱讀 8511

鏈式儲存結構的線性表

線性表:資料都是一對一的

鏈式儲存:不需要開闢一塊連續的空間,將資料進行儲存

(1)定義乙個結點結構體

typedef

int data_t;

//定義乙個結點結構體

typedef

struct nodelinklist;

(2)建立乙個空的單鏈表

//建立乙個空的單鏈表

//定義乙個當前結點結構體型別的指標變數並將其儲存null來標識為空

linklist *head =

null

;

(3)頭插法插入資料

//頭插法插入資料

void

insertdata

(linklist *

*head, data_t value)

//如果有資料,按照頭插法插入

else

}

(4)列印資料

//列印資料

void

printdata

(linklist *head)

putchar(10

);return

;}

(5)尾插法插入資料

//尾插法插入資料

void

insertdatabytail

(linklist *

*head, data_t value)

else

//最後乙個結點的指標域儲存新插入結點的位址

p->next = temp;

}return

;}

(6)頭刪法刪除資料

//頭刪法刪除資料

data_t deletedatabyhead

(linklist *

*head)

//定義變數儲存要刪除的結點的位址,方便於釋放空間

linklist *p =

*head;

//儲存要刪除的結點的資料域

data_t value = p->data;

*head =

(*head)

->next;

free

(p);

p =null

;return value;

}

(7)修改資料,按照資料修改資料,將舊的資料修改為新的

//修改資料,按照資料修改資料

void

changedata

(linklist *

*head, data_t old_value, data_t new_value)

p = p->next;}if

(flags ==0)

return

;}

(8)查詢資料,按照資料查詢位置,返回資料的位置

//按照資料查詢位置

intgetposbydata

(linklist *head, data_t value)

head = head->next;

pos++;}

printf

("%d不存在\n"

, value)

;return-1

;}

(9)插入資料並排序

//插入並排序

void

insertdataandsort

(linklist *

*head, data_t value)

else

else

//將p的後乙個結點的位址儲存在新插入結點的指標域中

temp->next = p->next;

//將新插入結點的位址儲存在p結點的指標域中

p->next = temp;}}

return

;}

單鏈表的操作

單鏈表是一種非常重要的資料結構,下面用c語言對單鏈表的操作做乙個簡單的總結 typedef struct nodenode,linklist 1 單鏈表的建立 建立乙個單鏈表,鍊錶裡面存放有十個偶數 2到20 有頭節點,頭節點不存放元素。linklist createlinklist return ...

單鏈表的操作

1.定義單鏈表的介面函式 ifndef linklist h define linklist h typedef int elemtype typedef struct node node node initnode bool addnode node head,elemtype data 頭插法 ...

單鏈表的操作

pragma once extern c list node,list link 頭插建立鍊錶 list link create list head int n 尾插法建立鍊錶 list link creat list tail int n 獲取長度 int get list length list...