C语言单链表实现城市信息管理系统
本文将使用 C 语言实现一个带头结点的单链表,用于存储城市信息。每个结点包含城市名和城市的位置坐标。该程序将提供以下功能:
- 插入: 插入新的城市信息到链表中。
- 删除: 根据城市名或坐标从链表中删除城市信息。
- 更新: 更新已有城市的信息(例如,修改城市名或坐标)。
- 查找:
- 根据城市名查找其坐标。
- 根据位置坐标和距离,查找所有距离该坐标小于等于指定距离的城市。
- 保存: 将所有城市信息保存到文件中。
程序实现:
// 定义结点结构体
struct City {
char name[50]; // 城市名
float x, y; // 城市坐标
struct City *next; // 指向下一个结点的指针
};
// 创建一个新的城市结点
struct City *createCity(char *name, float x, float y) {
struct City *newCity = (struct City *)malloc(sizeof(struct City));
strcpy(newCity->name, name);
newCity->x = x;
newCity->y = y;
newCity->next = NULL;
return newCity;
}
// 插入新的城市信息
void insertCity(struct City **head, char *name, float x, float y) {
struct City *newCity = createCity(name, x, y);
newCity->next = *head;
*head = newCity;
}
// 删除城市信息
void deleteCity(struct City **head, char *name) {
// ...
}
// 更新城市信息
void updateCity(struct City *head, char *name, float x, float y) {
// ...
}
// 根据城市名查找坐标
void findCityByName(struct City *head, char *name) {
// ...
}
// 根据坐标和距离查找附近的城市
void findCitiesByDistance(struct City *head, float x, float y, float distance) {
// ...
}
// 保存城市信息到文件
void saveCitiesToFile(struct City *head, char *filename) {
// ...
}
int main() {
// 创建一个空链表
struct City *head = NULL;
// 插入城市信息
insertCity(&head, "北京", 116.404, 39.915);
insertCity(&head, "上海", 121.474, 31.233);
insertCity(&head, "广州", 113.263, 23.126);
// 其他操作 ...
return 0;
}
注意: 以上代码仅提供框架,实际实现还需要补充具体的逻辑和代码。
原文地址: https://www.cveoy.top/t/topic/pVH 著作权归作者所有。请勿转载和采集!