单链表:
1.广州医院统计:院名、级别、地址(区)、类型(综合/单科(具体单科))、名医
2.可以插入 删除 修改
修改只改对应属性,不要一个实体全部属性改(单个数据项修改)
3.显示(通过地区查找医院,通过医院名查找医院信息,通过级别查医院,通过类型查找医院信息,通过名医查找医院信息)
我上面的广州医院管理系统已经完成
现在要在上面的基础上
用树形结构做,加至少三个城市做成广东省医院系统。
请问思路应该是怎么样呢?
请问如何将单链表管理系统升级为树型结构?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- weixin_43405544 2023-04-16 10:21关注
将单链表管理系统升级为树型结构,可以按照以下步骤进行:
定义树的节点结构体
typedef struct treeNode { char name[20]; //节点名称 int type; //节点类型:0表示省,1表示市,2表示医院 union { char province[20]; //省节点的省名 char city[20]; //市节点的市名 struct hospitalNode* hospital; //医院节点的指针 } info; struct treeNode* parent; //父节点指针 struct treeNode* child; //第一个子节点指针 struct treeNode* sibling; //兄弟节点指针 } TreeNode, *TreeNodePtr;
其中,name表示节点的名称,type表示节点类型,info是一个联合体,存储节点的信息,可以是省名、市名或者医院节点的指针。parent指向父节点,child指向第一个子节点,sibling指向下一个兄弟节点。
定义医院节点结构体
typedef struct hospitalNode { char name[20]; //医院名称 char level[10]; //医院级别 char address[50]; //医院地址 char type[20]; //医院类型 char doctor[20]; //名医 } HospitalNode, *HospitalNodePtr;
其中,name表示医院名称,level表示医院级别,address表示医院地址,type表示医院类型,doctor表示名医。
创建树
首先创建省节点,然后创建市节点,最后创建医院节点。每个节点都要设置好其父节点、子节点和兄弟节点。在创建节点的时候,可以读取外部文件中的数据,初始化节点信息。插入节点
插入节点时,可以先查找要插入节点的父节点,然后将新节点插入到其父节点的子节点中。删除节点
删除节点时,可以先查找要删除节点的父节点,然后将其从其父节点的子节点中删除。修改节点
修改节点时,可以先查找要修改的节点,然后修改其对应的属性。查找节点
可以通过不同的方式查找节点,如通过地区查找医院、通过医院名查找医院信息、通过级别查找医院、通过类型查找医院信息、通过名医查找医院信息等。具体实现可以根据实际需要进行设计。显示树
可以按照树的层次遍历方式,逐层输出节点信息,以展示整个树形结构。以上是将单链表管理系统升级为树型结构的一些思路,可以根据实际情况进行具体的实现。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 WPF 大屏看板表格背景图片设置
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
- ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
- ¥16 mybatis的代理对象无法通过@Autowired装填
- ¥15 可见光定位matlab仿真
- ¥15 arduino 四自由度机械臂
- ¥15 wordpress 产品图片 GIF 没法显示