数 据 结 构 课 程 设 计 实 验 报 告 实验一 链表部分 选题为:2 .4 .3 —城市链表 1 、 需求分析 (1) 创建一个带有头结点的单链表。 (2) 结点中应包含城市名和城市的位置坐标。 (3) 对城市链表能够利用城市名和位置坐标进行有关查找、插入、删除、更新等操作。 (4) 能够对每次操作后的链表动态显示。 2 、 概要设计 为了实现以上功能,可以从以下 3 个方面着手设计。 (1) 主界面设计 为了实现城市链表相关操作功能的管理,设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本程序。本系统主控菜单运行界面如下所示。 (2) 存储结构设计 本系统主要采用链表结构类型来表示存储在“城市链表”中的信息。其中链表结点由 4 个分量组成:城市名 name、城市的横坐标 posx 、城市的纵坐标 posy 、指向下一个结点的指针 nex t。 (3) 系统功能设计 本程序设计了 9 个功能子菜单,其描述如下: ① 建立城市链表。由函数 creatLink()实现。该功能实现城市结点的输入以及连接。 ② 插入链表记录。由函数 insert()实现。该功能实现按坐标由小到大的顺序将结点插入到链表中。 ③ 查询链表记录。由 searchName()函数和 searchPos()函数实现。其中searchName()实现按照城市名查询的操作,searchPos()实现按照城市坐标查询的操作。 ④ 删除链表记录。由 delName()函数和 delPos()函数实现。其中 delName()函数实现按照城市名删除的操作,delPos()函数实现按照城市坐标删除的操作。 ⑤ 显示链表记录。由printList()函数实现。该功能实现格式化的链表输出操作,可以显示修改后的链表状态。 ⑥ 更新链表信息。由u pdate()函数实现。该功能实现按照城市名更新城市的坐标信息。 ⑦ 返回城市坐标。由getPos()函数实现。该功能实现给定一个已存储的城市,返回其坐标信息的操作。 ⑧ 查看与坐标P 距离小于等于D 的城市。由getCity()函数实现。该功能实现返回与给定坐标P 距离小于等于D 的城市名称。 ⑨ 退出链表系统。由ex it(0)实现。 3 、 模块设计 (1)模块设计 本程序包含两个模块:主程序模块和链表操作模块。其调用关系如下图所示: (2)系统子程序及功能设计 本系统共设置3 个子程序,各程序的函数名及功能说明如下: ① Linklist creatLink() //创建一个城市链表,返回头结点地址 ② p...