- 98
- 0
- 约4.74千字
- 约 16页
- 2020-03-26 发布于江西
- 举报
数据结构实验报告
___09___级 __x____班 _xxxxx___年___xx___月__xx___日
姓名__xxxxx___ 学号 _xxxxxxx___ 得分_____________
1.实验题目
将若干城市的信息,存入一个带头结点的单链表。结点中的城市信息包括: 城市名,城市的位置坐标。要求能够利用城市名和位置坐标进行有关查找、插 入、删除、更新等操作。
2.需求分析
本演示程序用 VC 编写,完成城市链表的生成,插入、删除, 更新等操 作。
输入的形式和输入值的范围:先创建一个城市链表需要输入五个城市的名称 及城市的位置坐标;再输入你需要对链表的操作功能号 1 输出城市链表信息、 2 查找、3 插入、4 删除、5 修改、6 输出与坐标 P 距离小于 D 的城市、0 退 出程序.查找城市时输入城市的名称;插入城市信息时输入城西的名称及它 的位置坐标;删除链表中的城市需输入城市的名称;修改城市链表是需输入 旧的城市名和新的城市名及新的位置坐标;操作 6 应输入中心城市的坐标及 一个距离范围。在所有输入中,操作功能号是整数,城市名是单个的字母, 位置坐标及距离是浮点型的数字。
输出的形式:黑框界面出现时就提示出入 5 个城市的数据域,之后每次操作 都会输出包含各个操作的功能表以供选择,输出城市链表是会输出城市名及 位置坐标,其它的操作每一步都会输出相应的提示信息。
程序所能达到的功能:完成城市链表的生成、插入、删除、查找及更新操作 ④ 测试数据:
A. 创建城市链表操作中依次输入 e 1.0 2.0←d 2.0 2.5←c 4.5 3.2←b 5.4 2.6←a 7.4 5.2 生成一个城市链表
B. 查找操作中输入城市名 c 返回这个城市的位置坐标 4.5 3.2
C. 插入操作中依次输入新的城市名及位置坐标 f,7.4,3.5,返回插入成 功提示
D. 删除操作中输入需删除的城市名 f ,返回删除成功提示
. 更新操作依次输入 e,g,2.8,5.7 返回更新成功提示
. 查找距离操作中依次输入中心坐标及距离 3.8,6.4,2.66 返回链表中 符合要求的城市信息 g,2.8,5.7
3.概要设计
1)为了实现上述程序功能,需要定义单链表的抽象数据类型:
ADT LinkList {
数据对象:D={ai|ai∈IntegerSet,i=0,1,2,…,n,n ≥0}
数据关系:R={ai,ai+1|ai,ai+1 ∈D}
基本操作:
City CreateList()
操作结果:构造一个城市链表 L,录入五个城市信息.
search()
初始条件:城市链表已存在
操作结果:查找是否有与输入值一致的城市名, 若存在,返回城市的位置坐标;
Insert()
初始条件:城市链表已存在
操作结果:将新的城市信息插入到链表中
Delete()
初始条件:城市链表已存在
操作结果:删除链表需要删除的城市信息
distance()
初始条件:城市链表已存在
操作结果:输出给定的一个距离范围内的所有城市信息 alter()
初始条件:城市链表已存在
操作结果:修改链表中的城市信息
print()
初始条件:城市链表已存在
操作结果:打印出城市链表中的所有城市信息
begin()
操作结果:在屏幕上显示操作功能号
2)本程序包含 8 个函数:
① 主函数 main()
创建城市链表函数 City CreateList()
显示操作功能函数 void begin()
④ 显示单链表城市信息函数 void print()
⑤ 插入一个城市函数 void Insert()
删除一个城市信息函数 void Delete()
查找城市坐标函数 void search()
修改城市链表函数 void alter()
⑧ 查找一个固定距离范围内的城市 void distance() 各函数间关系如下:
4.详细设计
#includestdio.h
#includemalloc.h
#includemath.h
#include stdlib.h
#include string.h
typedef int status;
typedef struct data{
char 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
原创力文档

文档评论(0)