鏈式儲存結構的線性表
線性表:資料都是一對一的
鏈式儲存:不需要開闢一塊連續的空間,將資料進行儲存
(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...