云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 数据结构课程设计(通讯录制作)

数据结构课程设计(通讯录制作)

  • 62 次阅读
  • 3 次下载
  • 2025/6/23 22:50:58

printf(\退出 ******************\\n\ printf(\ do{

printf(\ gets(s);

c = atoi(s); /*将获取的字符串转换成整型*/

}while(c<0||c>7);

return c; /*返回输入值*/ }

2.输入信息函数 输入函数: struct address *info; /*定义当前结点*/ for(;;)

{ info=(struct address *)malloc(sizeof(struct address)); /**/

if(!info)

{

printf(\ exit(0); /*退出程序*/

} printf(\输入空姓名结束:\\n\

inputs(\请输入 姓名:\

if(!info->name[0])break; /*结束循环*/

inputs(\请输入 街道:\ inputs(\请输入 城市:\

欢迎共阅

为当前结点分配空间如果分配空间失败,如果输入姓名为空,

inputs(\请输入 国家:\ inputs(\请输入 邮编:\

insert(info,&start,&last); /*调用结点插入函数*/

}

输入函数调用到另外两个函数,inputs和insert

其中inputs中还用到fgets(str,n,fp),把键盘的输入信息传到 字符串中

char p[255]; do

{

printf(prompt); fgets(p,254,stdin);/*stdin,标准输入缓存,获取键盘输入信息*/ if(strlen(p)>count)

printf(\ }while(strlen(p)>count); p[strlen(p)-1]=0; strcpy(s,p); insert是关键函数,每当输入完一条信息都会调用到insert函数,将信息插入到链表中 if(*last==NULL) /*如果尾结点为空,意味着当前链表为空*/

{ /*则将该结点赋给头尾结点*/

i->next=NULL;

i->prior=NULL; *last=i; *start=i; return; }

欢迎共阅

else /*如果链表不为空,则将信息插入到链表尾,作为尾结点*/ {

(*last)->next=i; i->prior=*last;

i->next=NULL;

*last=(*last)->next; } *last (*last)->next NULL NULL i 插入信息会显示在链表最后i->next 3.删除·查找·显示函数 删除函数调用find函数,通过姓名,查找到该节点,然后删除该节点信息,这其中涉及到头尾节点,及其变化; 先判断是否为头结点,如果为头结点,则把原头结点的后继作为新的头结点

如果不为头结点,则该节点的前驱的next指向该节点的后继 如果该节点为尾结点,则让该节点的前驱作为新的尾结点 struct address *info; char s[80]; inputs(\请输入 姓名:\info=find(s); if(info)

{

printf(\

if(*start==info)

{

*start=info->next;

欢迎共阅

if(*start)

(*start)->prior=NULL;

else *last=NULL;

}

else

{

{

info->prior->next=info->next; if(info!=*last) info->next->prior=info->prior; else *last=info->prior; } free(info); printf(\删除成功!\\n\} 与删除相比,查找就简单的多,只需要调用find的函数,找到该节点记录并显示出来就行了,在search本身里面只要调整下输出的界面就行了

struct address *find(char *name) /*查找函数,形参为欲查找结点的name域*/

{ struct address *info; info=start; while(info)

{

if(!strcmp(name,info->name))

return info;

info=info->next;

}

欢迎共阅

搜索更多关于: 数据结构课程设计(通讯录制作) 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

printf(\退出 ******************\\n\ printf(\ do{ printf(\ gets(s); c = atoi(s); /*将获取的字符串转换成整型*/ }while(c7); return c; /*返回输入值*/ } 2.输入信息函数 输入函数: struct address *info; /*定义当前结点*/ for(;;) { info=(struct address *)malloc(sizeof(struct a

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com