#include
#include
#include
typedef struct peoplepeople;
void create(people *l)//尾插法建立鍊錶
people *p,*r;
int i;
r=l;
for(i=0;i<5;i++)
p=(people *)malloc(sizeof(people));
printf("input a name:\n");
scanf("%s",p->name);
printf("input age:\n");
scanf("%d",&(p->age));
printf("input num:\n");
scanf("%d",&(p->num));
r->next=p;
r=p;
r->next=null;
void paixu(people *l)//排序
people *p,*q,*tmp;
int i,j;
tmp=(people *)malloc(sizeof(struct people));
p=l->next;
q=p->next;
while(p!=null)
while(q!=null)
if(strcmp(p->name,q->name)>0)
strcpy(tmp->name,p->name);
strcpy(p->name,q->name);
strcpy(q->name,tmp->name);
tmp->age=p->age;
p->age=q->age;
q->age=tmp->age;
tmp->num=p->num;
p->num=q->num;
q->num=tmp->num;
q=q->next;
q=p->next;
p=p->next;
void insert(people *l,char na,int ag,inttel)
people *p,*s;//s為建立的空節點用來存放插入資料
int i;//迴圈使用
p=l;
s=(people *)malloc(sizeof(people));
strcpy(s->name,na);
s->age=ag;
s->num=tel;//分別將要插入的資料放入空節點中
s->next=p->next;//
p->next=s;
void delete(people *l,char na,int ag,inttel)//刪除
people *p,*q;
q=l;
p=l->next;
while(p!=null)
if((strcmp(p->name,na)==0)&&((p->age)==ag)&&((p->num)==tel))
q->next=p->next;
break;
else
q=q->next;
p=p->next;
free(p);
void print(people *l)//輸出函式
people *p=l->next;
int i;
while(p!=null)
printf("姓名:%10s\t",p->name);
printf("年齡:%5d\t",p->age);
printf("手機號碼:%15d\n",p->num);
p=p->next;
int main()
people p;
int i,n;
char na[20];
int ag,tel;
printf("通訊錄具有以下功能:\n1.建立聯絡人\n2.列表好友資訊\n3.新增好友\n4.搜尋好友\n5.刪除好友\n");
printf("建立功能請按1:\n");
scanf("%d",&n);
if(n==1)
create(&p);
print(&p);
printf("新增功能請按2:\n");
scanf("%d",&n);
if(n==2)
printf("請輸入要新增的姓名:\n");
scanf("%s",na);
getchar();
printf("請輸入年齡:\n");
scanf("%d",&ag);
printf("請輸入手機號碼");
scanf("%d",&tel);
insert(&p,na,ag,tel);//插入函式引數左到右分別為p,姓名,年齡,手機號碼
print(&p);
printf("排序功能請按3:\n");
scanf("%d",&n);
if(n==3)
paixu(&p);
print(&p);
printf("刪除功能請按4:\n");
scanf("%d",&n);
if(n==4)
printf("請輸入要刪除的名字:\n");
scanf("%s",na);
printf("請輸入要刪除的人的年齡:\n");
scanf("%d",&ag);
printf("請輸入要刪除的人的手機號碼:\n");
scanf("%d",&tel);
delete(&p,na,ag,tel);//輸入要刪除的人的姓名,年齡,手機號碼
print(&p);
return 0;
動態通訊錄(用順序表實現)
利用順序表實現動態通訊錄,實質就是乙個動態順序表,基本 和順序表大致 相同,涉及到結構體的建立,初始化,插入,刪除,查詢等功能。define crt secure no warnings include include include include 定義乙個通訊錄內容 typedef struct...
Python實現通訊錄功能
說實話,第一次寫這麼長的python 期間遇到了很多問題,但是,最終還是完成了,花了我一天半的時間。該程式實現了使用者的增,刪,改,查,主要用到sqlite3模組。對於該模組的知識點,請檢視我的另一篇文章sqlite python 如有更好的建議,請私信,本人將不勝榮幸,讓我們一起來學習python...
鍊錶實現功能強大的通訊錄
menu head sort head print head return 0 主選單 status menu node head case 2 case 3 case 4 case 5 default printf 請重新輸入正確的操作指令 n return ok 修改方式選單 status me...