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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构城市链表Word下载.docx

1、3概要设计1)为了实现上述程序功能,需要定义单链表的抽象数据类型:ADT LinkList 数据对象:D=ai|aiIntegerSet,i=0,1,2,n,n0 数据关系:R=|ai,ai+1 D基本操作:City CreateList()操作结果:构造一个城市链表L,录入五个城市信息.search()初始条件:城市链表已存在操作结果:查找是否有与输入值一致的城市名,若存在,返回城市的位置坐标;Insert()将新的城市信息插入到链表中 Delete()初始条件:删除链表需要删除的城市信息distance()输出给定的一个距离范围内的所有城市信息alter()修改链表中的城市信息print(

2、)打印出城市链表中的所有城市信息begin() 在屏幕上显示操作功能号2)本程序包含8个函数: 主函数main() 创建城市链表函数City CreateList() 显示操作功能函数void begin() 显示单链表城市信息函数void print() 插入一个城市函数void Insert() 删除一个城市信息函数void Delete() 查找城市坐标函数void search() 修改城市链表函数void alter() 查找一个固定距离范围内的城市void distance()各函数间关系如下: 4详细设计#includemalloc.hmath.h#include string.

3、htypedef int status;typedef struct datachar Cname;float x;float y;data;typedef struct CityNode data data; struct CityNode *next;CityNode,*City;City L;City CreateList() /创建城市链表 int i; City p; L=(City )malloc(sizeof(CityNode); L-next=NULL; printf(请输入5个城市的数据域:n); for(i=0;idata.Cname,&data.x,&data.y); g

4、etchar(); p-next=L-next; L-next=p; return L;void search() /查找城市坐标 char name; p=L;请输入需要查找的城市名: scanf(%cname);该城市的坐标为: while(p) if(p-data.Cname=name)%f,%f,p-data.x,p- p=p-void Insert() /插入新的城市 City p=L- City s=(City)malloc(sizeof(CityNode);请输入要插入的城市名及它的坐标%c,%f,%fs- s-next=p- p-next=s;新城市%c插入成功n,s-data

5、.Cname);void Delete() /删除城市City q,p=L-int j=0;char z;printf(请输入要删除的城市名:scanf(z);while(p-data.Cname!=z) q=p;q-free(p);删除成功!void distance() /距离范围内的城市float s,d;float x1,y1,x2,y2;City p;p=L-请输入中心坐标x1,y1:x1,&y1);请输入与中心城市的距离范围d:%fd);while(p)x2=p-data.x; y2=p-data.y; s=sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);

6、if(svoid alter() /修改城市节点 char a,b; float m,n; int k=0; City p=L;请输入旧的城市名:a); while(p-=a) 请输入新的城市名: %cb);请输入新的城市坐标:m,&n);data.Cname=b;data.x=m;data.y=n;void print() /输出城市链表 City a; char name10; float x10; float y10; a=L- i=0; while(a) namei=a-data.Cname; xi=a- yi=a- a=a- printf(%c (%f,%f)n,namei,xi,y

7、i); i+;void begin() do-n 请选择需要操作的功能: n 1-输出城市链表信息n 2-查找n 3-插入n 4-删除n 5-修改n 6-与坐标P距离小于D的城市n 0-退出程序n请输入您选择的功能号:%di); getchar(); if(i0) switch(i) case 1:print();break; case 2:search(); case 3:Insert(); case 4:Delete(); case 5:alter(); case 6:distance(); case 0: if(i printf(您输入的数值不正确,请重新输入! while(i!=0);

8、void main() CreateList(); begin();5调试分析 a是如何解决的以及对设计与实现的回顾讨论和分析;调试过程中遇到的问题有在写调用函数是函数的形参的类型与实参的类型不一致我经常在很多地方符号丢失 改进设想;直接将数值在调用的函数里定义、输入及输出避免在主函数里传实参值,这样就不易出错。 b经验和体会 写函数时对指针的应用有些混乱 总的来说还是对以前的C语言知识有些遗忘,基础不够扎实导致所发的时间太多了。6使用说明程序名为Globals,运行环境为VC,每一步都有提示信息提示下一步的实现功能及它的操作输入,当输入错误时有错误提示信息。7测试结果1)输入数据打印出所有的城市信息2)输入城市名查找出相应的位置坐标3)将一个新的城市信息插入到链表中并打印出改动后的链表中的所有城市信息4)删除一个城市信息并打印出改动后的链表中的所有城市信息5)修改一个旧的城市信息输入新的城市名及坐标,改动后的链表中的所有城市信息6)查找距离城市

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

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