鍊錶是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。
鍊錶由一系列結點(鍊錶中每乙個元素稱為結點)組成,結點可以在執行時動態生成。
每個結點包括兩個部分:資料域和指標域
特點:1)可以方便的進行擴充。
2)可以方便的刪除和插入。
**例子如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//定義結構體表示單鏈表
struct node
;//初始化鍊錶
struct node *
list_init()
return head;
}//新建節點
struct node *
new_node
(int n)
return new;
}//插入資料於末尾
void
inter_node
(struct node *new,
struct node *head)
tail->next = new;
new->next =
null
;}
刪除鍊錶的另外一種方法:
//單鏈表的刪除,用兩個指標解決
intremove_list
(int deldata,
struct siglelist *head)
else
}//經過仔細分析,發現前面的迴圈漏掉了最後乙個資料沒有判斷,沒有刪除
if(p->next==
null
&& p->data==deldata)
if(flag==
0&& p->next==
null
&& p->data!=deldata)
}
//刪除指定資料
void
del(
struct node *head,
int deldata)
if(p->data == deldata)
}void
fine
(struct node *head,
int data)
if(p->data == data)
else
printf
("沒有找到資料%d\n"
, data);}
//更改資料
void
chang
(struct node *head,
int old,
int new)
if(p->data == old)
else
}//判斷鍊錶是否為空
bool empty
(struct node *head)
//列印鍊錶
void
show
(struct node *head)
while
(head->next !=
null
)}
主函式如下:
int
main()
printf
("-----插入資料!------\n");
show
(head)
;printf
("-------刪除資料6!------\n");
del(head,6)
;show
(head)
;printf
("-------查詢資料7!--------\n");
fine
(head,7)
;printf
("-------更改資料2->3-----\n");
chang
(head,2,
3);show
(head)
;return
0;}
以上為個人學習筆記,僅供參考! 單鏈表的增刪查改
include includetypedef struct nodenode,linklist int num 查詢給定值的結點,返回結點指標 node findvalue char c,node head return head 查詢給定位置的結點的值 char findindex value n...
單鏈表的增刪查改
本篇部落格主要介紹c資料結構中的單鏈表有關的增刪查改操作,並且介紹列表的快慢指標,鍊錶的逆置和合併等用法,廢話不說直接上 pragma once include include include typedef int datetype typedef struct plistnode plistno...
單鏈表的實現(增 刪 查 改功能)
標頭檔案函式 ifndef slistnode h define slistnode h typedef int datatype typedef struct slistnode slistnode slistnode buyslistnode datatype x void slistprint...