资源简介
电子工业出版社 数据结构课程设计
将若干城市的信息,存入一个带头结点的单链表。结点中的城市信息包括城市名和城市的位置坐标。要求能过利用城市名和位置坐标进行有关查找、插入、删除、更新等操作。
代码片段和文件信息
#include
#include
#include //字符串处理函数的头文件
#include //动态存储分配实现单元
#include
#include
#include
typedef struct CityList {
char CityName[20]; //城市名
float XY; //坐标
int CityPopulation; //人口
float CityArea; //面积
struct CityList *Next;
}CityList *LHead; // 结点类型,指针类型
//***始化操作,创建链表
void Init(CityList *LHead) { //建立一个带头结点的单链线性表,LHead指向头结点
LHead->Next = NULL;
}
//***插入操作
void Insert(CityList *LHead) {
system(“cls“);
CityList* newNode; //定义指针结构为cityList型
char m;
newNode = (CityList*)malloc(sizeof(CityList)); //生成新结点
if(newNode == NULL) { //验证空间申请是否成功
printf(“内存分配失败\n“);
return; //若分配内存不成功,则返回继续分配。
}
printf(“\n请输入城市名称并回车:“);
scanf(“%s“&newNode->CityName); //指针的数据域
printf(“请输入城市坐标xy并回车:“);
scanf(“%f%c%f“&newNode->X&m&newNode->Y); //将城市信息填入新节点中
printf(“请输入城市人口并回车:“);
scanf(“%d“&newNode->CityPopulation);
printf(“请输入城市面积并回车:“);
scanf(“%f“&newNode->CityArea);
while(LHead->Next != NULL) {
LHead = LHead->Next; //如果非空,HLead指针的位置向后移
}
printf(“已成功插入新城市信息!\n“);
newNode->Next = LHead->Next;
LHead->Next = newNode; //将新节点插入链表
}
//***删除操作
void Delete(CityList *LHead) {
system(“cls“);
char delCity[20];
printf(“\n请输入要删除的城市名称并回车:“);
scanf(“%s“delCity);
if(LHead->Next == NULL) {
system(“color 9d“);
printf(“您删除的城市不存在请先创建城市!\n“);
return;
}
while(strcmp(LHead->Next->CityNamedelCity )) { /* 从LHead指向得头结点的下一个结点开判断
结点中的城市名与输入城市名是否相等 */
LHead = LHead->Next; //不相等则指针LHead下移,继续查找
}
LHead ->Next = LHead->Next->Next; //相等则删除此节点
printf(“以成功删除此城市信息!\n“);
}
//***更新操作
void UpdateCity(CityList* LHead) {
system(“cls“);
char CityName[20];
char m;
printf(“\n请输入您要更新的城市名称并回车:“);
scanf(“%s“CityName);
if(LHead->Next == NULL) {
printf(“\n您要更新的城市不存在,请先创建城市!\n“);
return;
}
while(strcmp(LHead->Next->CityNameCityName)) { /* 从LHead指向得头结点的下一个结点开判断
结点中的城市名与输入城市名是否相等 */
LHead = LHead->Next; //当不相等则指针LHead下移,继续查找
}
printf(“\n***请输入城市的新信息***\n“); //输入城市新信息
printf(“请输入城市的新名称并回车:“);
scanf(“%s“LHead->Next->CityName);
printf(“请输入城市的新坐标(XY)并回车:“);
scanf(“%f%c%f“&LHead->Next->X&m&LHead->Next->Y);
printf(“请输入城市的新人口:“);
scanf(“%d“&LHead->Next->CityPopulation);
printf(“请输入城市的新面积:“);
scanf(“%f“&LHead->Next->CityArea);
printf(“已成功更新该城市信息!\n“);
}
//***5、正向查找操作
void FindCity(CityList* LHead) {
system(“cls“);
char CityName[20];
int j=0;
printf(“\n请输入您要查找的城市名称并回车:“);
scanf(“%s
相关资源
- 数据结构课程设计—利用栈求表达式
- 数据结构课程设计模板
- 数据结构课程设计B树
- 数据结构课程设计 关键路径
- 石大远程在线考试——《数据结构课
- 顺序结构、动态链表结构下的一元多
- 数据结构课程设计--汽车租赁
- 数据结构课程设计表达式求值
- 数据结构课程设计二叉树的非递归遍
- 数据结构课程设计报告电表计费系统
- 数据结构课程设计建立词索引表
- 校园网布线方案数据结构课程设计
- 全国交通咨询模拟数据结构课程设计
- 数据结构课程设计——压缩软件Huff
- 数据结构课程设计-二叉排序树附详细
- 神秘国度的爱情故事 算法与数据结构
- 数据结构课程设计 线索二叉树
- 广东工业大学数据结构课设---航空航
- 数据结构课程设计校园导游完整版
- 学生成绩管理系统-数据结构课程设计
- 数据结构课程设计之客户积分管理系
- 广工数据结构课程设计完整版
- 数据结构课程设计之贪吃蛇源代码
- 数据结构课程设计大作业-全国交通咨
- 数据结构课程设计报告——在表达式
- 数据结构课程设计--统计成绩
- 数据结构课程设计纸牌游戏
- 数据结构课程设计全部系统合集超市
- 数据结构课程设计(排序综合)
- 数据结构课程设计实验报告后缀表达
评论
共有 条评论