chainlist.h
#include
#include
typedef
struct nodechainlisttype;
chainlisttype *chainlistaddend(chainlisttype *head,data data);//新增節點到鍊錶末尾
chainlisttype *chainlistaddfirst(chainlisttype *head,data data);// 新增節點到鍊錶首部
chainlisttype *chainlistfind(chainlisttype *head,char *key);//按關鍵字在鍊錶中查詢內容
chainlisttype *chainlistinsert(chainlisttype *head,char *findkey,data data); //插入節點到鍊錶指定位置
int chainlistdelete(chainlisttype *head,char *key);//刪除指定關鍵字的節點
int chainlistlength(chainlisttype *head);//獲取鍊錶節點數量
chainlist1.c
chainlisttype *chainlistaddend(chainlisttype *head,data
data)//新增節點到鍊錶末尾
node->
data
=data;
node->next=
null;
if(head==
null)//鍊錶為空時
h=head;
while(h->next!=
null)h=h->next;
h->next=node;
return head;
}chainlisttype *chainlistaddfirst(chainlisttype *head,data
data)// 新增節點到鍊錶首部
node->
data
=data;
node->next=head;
head=node;
return head;
}chainlisttype *chainlistfind(chainlisttype *head,char *key)//按關鍵字在鍊錶中查詢內容
return
null;
}chainlisttype *chainlistinsert(chainlisttype *head,char *findkey,data
data) //插入節點到鍊錶指定位置
node->
data
=data;
node1=chainlistfind(head,findkey);
if(node1)
else
return head;
}int chainlistdelete(chainlisttype *head,char *key)//刪除指定關鍵字的節點
else
}return
0;//未找到
}int chainlistlength(chainlisttype *head)//獲取鍊錶節點數量
return i;
}
chainlisttest.c
#include
typedef
structdata;
#include"chainlist.h"
#include"chainlist1.c"
void chainlistall(chainlisttype *head)//遍歷鍊錶
}int main()
while(1);
printf("共有%d個節點\n",chainlistlength(head));
chainlistall(head);
printf("\n插入節點,輸入插入位置關鍵字:\n");
fflush(stdin);///error1:刪除後scanf跳過執行
scanf("%s",findkey);
printf("輸入插入節點的資料(key, name, age):");
scanf("%s%s%d",data.key,data.name,&data.age);
head=chainlistinsert(head,findkey,data);
chainlistall(head);
printf("\n在鍊錶中查詢關鍵字,輸入關鍵字:");
fflush(stdin);
scanf("%s",&key);
node=chainlistfind(head,key);
if(node)
else
printf("\n在鍊錶中刪除節點,輸入刪除節點的關鍵字:");
fflush(stdin);
scanf("%s",key);
chainlistdelete(head,key);
chainlistall(head);
printf("\n在鍊錶中刪除結點,輸入要刪除的關鍵字:");
fflush(stdin);//清空輸入緩衝區
scanf("%s",key);//輸入刪除結點關鍵字
chainlistdelete(head,key); //呼叫刪除結點函式
chainlistall(head); //顯示所有結點
getch();
return
0;}
例題:鍊錶實現簡單通訊錄
addresslist.c
#include
typedef structdata;
#include"chainlist.h"
#include"chainlist1.c"
void chainlistall(chainlisttype *head)//顯示聯絡人
}chainlisttype *input(chainlisttype *head)//新增聯絡人
void find(chainlisttype *head)//查詢聯絡人
}void deletec(chainlisttype *head)//刪除聯絡人
int main()
}while(select!='0');
}
資料結構(C語言) 單向鍊錶
c語言的單向鍊錶,就是在乙個將一些資料放在乙個結構體裡,然後在結構體裡加 struct next 的成員,用於指向下一結點。引用時,建立乙個臨時的結構體變數進行引用。如原結構體變數為 struct p 則 可建立 struct temp,然後 for temp p temp next null te...
資料結構 單向鍊錶
鍊錶結構的資料格式儲存 include stdafx.h 把這行放在最開始。include includeusing namespace std typedef struct data typedef struct node 這裡與上面的不同是多了node,注意如果沒有這個node,下面的struc...
資料結構(單向鍊錶)
ifndef linklist h define linklist h 鍊錶節點 template class linklistdata linklistdata linklistdata 獲取資料 t getdata public t data 資料 template class linklist...