ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:206.54KB ,
资源ID:18113298      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18113298.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构单链表通讯录Word文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构单链表通讯录Word文档格式.docx

1、stdlib.hstring.h#define Newsp (TxlList *)malloc(sizeof(struct TxlList)typedef struct TxlList char Name16; /姓名 char MTel11; /手机号 char Tel9; /固定电话 char EMail16; /邮箱地址 char BornAddr20; /籍贯(值域:北京、上海大连等等,只写城市名称) char BroadN50; /博客名 struct TxlList *next; /指针域 TxlList, *TxlLink;void Lbuild1(TxlLink &T)/创建文

2、件 FILE *fp; TxlLink q; q=Newsp; q=T; int NUM; char filename20; printf(n*请输入要创建的通讯录名:n); gets(filename); if (fp=fopen(filename, wb)=NULL) /*以写方式在当前目录打开(新建)文件*/ printf(cant open filen exit(0); /如果文件无法打开,关闭已经打开的其它文件,结束程序。 printf(*请输入要储存的人数: scanf(%d,&NUM); getchar(); for(int a=0;aName);*手机号:MTel);*固定电话

3、:Tel);*邮箱地址:EMail);*籍贯:BornAddr);*博客名:BroadN); p-next=NULL; q-next=p; q=q-next; if (fprintf(fp,%s %s %s %s %s %sn,p-Name,p-MTel,p-Tel,p-EMail,p-BornAddr,p-BroadN)=1)/向文件中一次写一个结构体量值 printf(file write errorn break; fclose(fp);void Lbuild2(TxlLink &T)/读取文件 TxlLink q; q=Newsp; q=T; char filename20; prin

4、tf(n*请输入要读取的通讯表名: gets(filename); if(fp=fopen(filename,rb)=NULL) exit(0); while(!feof(fp) TxlLink p; p=Newsp; fscanf(fp,%s %s %s %s %s %s q- p- q=q- fclose(fp);void Build(TxlLink &T)/选择建立方式的函数 int Choice;*) ;n*请输入想要实现的功能编号:*1.新建通讯录;n*2.输出已有有通讯录;n*其它-退出。n*选择为: scanf(Choice); getchar(); switch(Choice)

5、 case 1: Lbuild1(T); break; case 2: Lbuild2(T); break; default: 无通讯录nn break; void Update(TxlLink &T, char *Name, char *MTel)/将姓名为Name的好友的手机号改为MTel; TxlLink p; p=T- while(p) if(strcmp(p-Name,Name)=0) strcpy(p-MTel,MTel); p=p-void Buildnew(TxlLink &T)/创建一个空资料单元 char a=无; strcpy(T-Name,a);MTel,a);EMai

6、l,a);BornAddr,a);BroadN,a);Tel,a); T-void OutPut(TxlLink T)/输出通讯表数据 p=Newsp;n*通讯录信息:n姓名,手机号,固定电话,邮箱地址,籍贯,博客名分别为:void Sort(TxlLink &T) /将该通讯录按照好友姓名进行非递减排序 TxlLink p,q,r; p=T; q=p- int SUM=0; while(q)/记录通讯表数据个数 SUM+; q=q- for(int i=0;iSUM;i+) for(int j=0;j if(r) if(strcmp(q-Name,r-Name)0) next=r;next=

7、r- r-next=q; p=p- q=p- p=T; q=p- r=q-void Merge(TxlLink &T1, TxlLink &T2) /将两个按姓名非递减排序的通讯录合并为一个,姓名相同且手机号相同的好友记录在结果中只保留一个 Sort(T1); Sort(T2); TxlLink p,q,r,t,head; p=T1- q=T2- head=T1; while(p|q) r=p; t=q; if(strcmp(p-Name,q-0) head-next=t; head=head-w else if(strcmp(p-Name)MTel)0) q=q- head- head=he

8、ad- else if(strcmp(p-MTel)Name的结点放到该结点后面; Sort(T); int n=1; r=Newsp; Buildnew(r); strcpy(r-Name,Name); while(q)=0) T- r- n=0;=0) n=0; if(n=1) p-int Count(TxlLink T)/统计籍贯是某地的好友人数; int x=0; char BornAddr20;*请输入要查询的地址: gets(BornAddr);BornAddr,BornAddr)=0) x+; return x;int Number1(TxlLink p,TxlLink &r,T

9、xlLink &t,int k)/运用递归方法找到倒数第k个结点的地址 if(p) q=p; x=Number1(p,r,t,k)+1; if(k=x) r=q; if(k+1)=x) t=q;int Number2(TxlLink p,TxlLink &t,int &k)/运用递归方法找到倒数第k个的地址 k+; x=Number2(p,r,t,k)+1; if(k/2)=x) if(k/2+1)=x)void MoveK(TxlLink &T, int k)/将通讯录中倒数第k个结点之后的所有结点移到头结点后面 int x; TxlLink p,q,r,t; x=Number1(p,r,t

10、,k); t- while(r) q=r; r=r- q-void ReverseN(TxlLink T)/将通讯录的正中间位置结点之后的全部结点倒置 int k=0; Number2(p,r,t,k);int main(void) TxlLink P; int x=1; P=Newsp; Build(P); while(x)*1.排序;n*2.插入信息;n*3.更改手机;n*4.合并;n*5.统计籍贯人数;n*6.移节点;n*7.倒置链表;n*其它退出。 switch(Choice) case 1:n*排序前的通讯表*n OutPut(P); Sort(P);n*排序后的通讯表*n case

11、 2:n*插入前的通讯录*n OutPut(P); char name16,mtel11;n*请输入要插入的好友姓名: gets(name);n*请输入要插入的好友号码: gets(mtel); Insert(P,name,mtel);n*插入后的通讯录*n* case 3:n*改写前的通讯录*nn*请输入要改写的好友姓名:n*请输入要改写的好友号码: Update(P,name,mtel);n*改写后的通讯录*n case 4: TxlLink Q; Q=Newsp;n*建立另一个通讯录n Build(Q);n*第一个通讯录nn*第二个通讯录n OutPut(Q); Merge(P,Q);n*合并并排序后的通讯录*n case 5: int N;n*输出通讯录*n N=Count(P);n*统计结果为:n*共%d个人n,N); case 6: int n;n*请输入移动节点数:n n=n);n*移动前的通讯录: MoveK(P,n);n*移动后的通讯录: case 7:n*倒置前的通讯录*n ReverseN(P);n*倒置后的通讯录*n default: x=0; return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1