问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么用C语言建立一个链表实现一个通讯录?

发布网友 发布时间:2022-05-13 15:38

我来回答

1个回答

热心网友 时间:2023-10-14 18:29

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#define F-1

#define T 1

struct Address

{

char name[20];

char number[12];

char address[20];

struct Address*next;

};

typedef struct Address*node;

int init(node*head);

int creat_tail(node head);

int insert_index(node head);

int length(node head);

int query_name(node head);

int delete_address(node head);

void print(node head);

int main()

{

node head;

init(&head);

int x;

do

{

printf("0:exit\n");

printf("1:creat_tail\n");

printf("2:insert_index\n");

printf("3:query_name\n");

printf("4:delete_address\n");

printf("5:print\n");

printf("please select\n");

scanf("%d",&x);

switch(x)

{

case 0:

exit(0);

case 1:

creat_tail(head);

break;

case 2:

insert_index(head);

break;

case 3:

query_name(head);

break;

case 4:

delete_address(head);

break;

case 5:

print(head);

break;

default:

exit(0);

}

}

while(1);

return 0;

}

int delete_address(node head)

{

char address[20];

printf("please input the address you want to delete\n");

scanf("%s",address);

while(head->next!=NULL)

{

if(strcmp(head->next->address,address)==0)

{

node temp=head->next;

head->next=head->next->next;

free(temp);

}

else

{

head=head->next;

}

}

return T;

}

int query_name(node head)

{

char name[20];

int count=0,index=0;

printf("please input the name you want\n");

scanf("%s",name);

while(head->next!=NULL)

{

if(strcmp(head->next->name,name)==0)

{

count++;

printf("%d.name:%s number:%s address:%s\n",index+1,head->next->name,head->next->number,head->next->address);

}

head=head->next;

index++;

}

if(count==0)

{

printf("not found\n");

}

return T;

}

int length(node head)

{

int count=0;

while(head->next!=NULL)

{

head=head->next;

count++;

}

return count;

}

int insert_index(node head)

{

int index;

printf("please input the index you want to add\n");

scanf("%d",&index);

if(index<0||index>=length(head))

{

printf("out of range\n");

return F;

}

node newnode=(node)malloc(sizeof(struct Address));

if(NULL==newnode)

{

return F;

}

int i;

for(i=0;i<index;i++)

{

head=head->next;

}

printf("please input the name,number,address\n");

printf("when you input 0 0 0,exit\n");

scanf("%s%s%s",newnode->name,newnode->number,newnode->address);

if(strcmp(newnode->name,"0")!=0)

{

newnode->next=head->next;

head->next=newnode;

}

return T;

}

void print(node head)

{

int count=0;

while(head->next!=NULL)

{

count++;

printf("%d.name:%s number:%s address:%s\n",count,head->next->name,head->next->number,head->next->address);

head=head->next;

}

}

int creat_tail(node head)

{

do

{

node newnode=(node)malloc(sizeof(struct Address));

if(NULL==newnode)

{

return F;

}

printf("please input the name,number,address\n");

printf("when you input 0 0 0,exit\n");

scanf("%s%s%s",newnode->name,newnode->number,newnode->address);

if(strcmp(newnode->name,"0")!=0)

{

newnode->next=NULL;

while(head->next!=NULL)

{

head=head->next;

}

head->next=newnode;

}

else

{

break;

}

}

while(1);

return T;

}

int init(node*head)

{

node newnode=(node)malloc(sizeof(struct Address));

if(NULL==newnode)

{

return F;

}

strcpy(newnode->name,"0");

strcpy(newnode->number,"0");

strcpy(newnode->address,"0");

newnode->next=NULL;

(*head)=newnode;

return T;

}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
乾隆小时候的书童是谁 下面对句式判断有误的一项是( ) A.当立者乃公子扶苏(判断句) ...为折线,把 折起,使平面 平面 ,连接 (1)求证: ;(2)求二面角 图中由线段OA、AB组成的折线表示的是小明步行所走的路程和时间之间的关... 动态图像粒度粒形分析仪 oppor9splus视频通话怎么开美颜 微信视频聊天怎么开美颜oppor9 谁家出售二手胶囊填充机NJP1200 NJP-1200A硬胶囊填充机仪器特点简介 NJP-1200A硬胶囊填充机仪器参数 HFSS仿真过程中停在那里不动是什么原因 安装HFSS 13.0出现问题怎样解决 16G内存,3.2GHZ的I5CPU的台式机XP系统,ansys13.0,计算46万节点,为什么还会出现内存不足?该如何解决? 咸黄瓜的腌制方法是什么? ansys计算内存不足,怎样有好的方法可以解决呢,简单的更好? 常见,女生选择穿人字拖去约会,约会选择穿人字拖有什么好处呢? 卡斯罗犬打猎物怎么样? 三星手机为什么搜索不到蓝牙耳机 卡斯罗犬容易生病吗 几个月的卡斯罗好喂养 卡斯罗犬抵抗力怎么样? 谁养过卡斯罗犬、性格怎么样? 卡斯罗怎么养? 大家觉得卡斯罗怎么样 怎样优化这个jq代码? 鼠标放在小图片上对应下方显示大图 卡斯罗看家怎么样? 卡斯罗智商怎样 谁有好一点的同城异性交友网,推荐一个? 卡斯罗犬性格怎么样,卡斯罗真实性格特点 解答:卡斯罗犬怎么样,适合家养吗 卡斯罗犬的性格怎么样? 免费交友网 丙氨酸氨基转移酶是65,还严重啊… 谷丙转氨酶65,肝功能很异常吗? 用C语言建立一个链表实现一个通讯录, 利用链表设计一个通讯录 车载导航与手机连接还需要下什么? 谷丙转氨酶65算高吗?怎么降低 用链表进行通讯录设计 C语言:用链表写通讯录 一个c++程序。用链表做一个学生通讯录。包括子函数,增加通讯录,删除通讯录,查询通讯录,显示全部通 我在医院做的体检,说我的转氨酶60~65,算高吗,会传染吗?对个人健康有影响吗?高人请指点,万分感谢!!! QQ中的各个业务怎么开啊! 用单链表编写简单的通讯录 C语言数据结构:链表的应用--通讯录管理 今天去无偿献血化验结果说转氨酶偏高达到65了请问这是甚么导致的? C++求用简单链表写一个通讯录管理,要求可以添加、查看、查询、删除 c语言用链表建立通讯录 要求1.能建立,修改和增删学生通讯录 2.能够按多种方式进 您好我家孩子19岁男孩转氨酶高出65,怎么办?怎么引发的 怎么下载车载导航 c语言双向链表通讯录? 我肝功检查转氨酶65,算不算正常?这会传染吗?