m0_72322824 2023-04-16 10:13 采纳率: 70.6%
浏览 48
已结题

请问如何将单链表管理系统升级为树型结构?

单链表:
1.广州医院统计:院名、级别、地址(区)、类型(综合/单科(具体单科))、名医
2.可以插入 删除 修改
修改只改对应属性,不要一个实体全部属性改(单个数据项修改)
3.显示(通过地区查找医院,通过医院名查找医院信息,通过级别查医院,通过类型查找医院信息,通过名医查找医院信息)
我上面的广州医院管理系统已经完成
现在要在上面的基础上
用树形结构做,加至少三个城市做成广东省医院系统。
请问思路应该是怎么样呢?

  • 写回答

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表示名医。

    创建树
    首先创建省节点,然后创建市节点,最后创建医院节点。每个节点都要设置好其父节点、子节点和兄弟节点。在创建节点的时候,可以读取外部文件中的数据,初始化节点信息。

    插入节点
    插入节点时,可以先查找要插入节点的父节点,然后将新节点插入到其父节点的子节点中。

    删除节点
    删除节点时,可以先查找要删除节点的父节点,然后将其从其父节点的子节点中删除。

    修改节点
    修改节点时,可以先查找要修改的节点,然后修改其对应的属性。

    查找节点
    可以通过不同的方式查找节点,如通过地区查找医院、通过医院名查找医院信息、通过级别查找医院、通过类型查找医院信息、通过名医查找医院信息等。具体实现可以根据实际需要进行设计。

    显示树
    可以按照树的层次遍历方式,逐层输出节点信息,以展示整个树形结构。

    以上是将单链表管理系统升级为树型结构的一些思路,可以根据实际情况进行具体的实现。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月1日
  • 已采纳回答 4月23日
  • 创建了问题 4月16日

悬赏问题

  • ¥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 没法显示