首页新闻找找看学习计划

十字链表的创建

0
悬赏园豆:50 [待解决问题]

系统主要涉及医院的“科室”、“病人”和“就诊记录”3类信息。“科室”信息由科室编号、科室名称、科室地址和联系电话等数据项目组成,“病人”信息由病人编号、姓名、住址,联系电话等数据项目组成,“就诊记录”信息由病人姓名、就诊时间,症状信息等数据项目组成。
采用3个文件分别存储“科室”、“病人”和“就诊记录”的数据。在“病人”信息中增加科室编号,在“就诊记录”信息中增加科室编号。
在内存中,须采用如下图所示的多重链式数据结构来保存3类相关联的信息。

功能要求:通过此系统可对病人就诊时的就诊记录进行管理和维护操作。包括:
(1)基本就诊记录的录入、修改和删除功能,如科室基本信息、病人基本信息和病人就诊记录。
(2)信息的查询功能:按科室编号查询科室信息;按病人身份证号查询病人信息;按病人查询病人就诊记录;按病人身份证号、科室编号、就诊日期为组合条件查询就诊记录。
(3)数据统计功能:提供多方面的数据统计功能具体包括:日就诊人数:统计各科室每日的就诊人数;病人分类:统计不同年龄的就诊病人的人数;病人就诊历史:统计每个病人的所有就诊记录,并提供查询功能。

liebe_V的主页 liebe_V | 初学一级 | 园豆:152
提问于:2019-01-08 00:37
< >
分享
所有回答(2)
0

1.你这明显sql的事搞什么十字链表。。
2.如果你不想用sql,可以使用hash表+map的数据结构。所有记录按3类信息用hash表分别以科室编号、病人身份证号和就诊日期为对应key值,满足1,2,和部分3(全查询或统计)。然后可以将常用的分组排序功能单独使用map来存,例如统计不同年龄的就诊病人的人数,以病人年龄为map的key,value对应病人信息的hash表引用。
3.如果你非要用十字链表可以按照你所画图直接组织对应结构就好,大多数操作都需要三重循环遍历,感觉有些蠢。。

水墨的心 | 园豆:361 (菜鸟二级) | 2019-01-08 11:03

就是题目要求要十字链表啊,要不然我这么麻烦干嘛

支持(0) 反对(0) liebe_V | 园豆:152 (初学一级) | 2019-01-08 16:41

@liebe_V: 按你这个图对应的结构大概就这样:
struct Record {
//...记录信息
long long time;
struct Record * next;
};
struct Patient {
//...病人其他信息
int id;
struct Record * records;
struct Patient * next;
};
struct Office {
//...科室其他信息
int number;
struct Patient * patients;
struct Office * next;
};
struct Office * head = NULL;
这种链表就只能遍历操作了,最多三层。

支持(0) 反对(0) 水墨的心 | 园豆:361 (菜鸟二级) | 2019-01-08 19:51
0

每个科室一张表,人员一张表,就诊记录一张表,人员往科室表里存就搞定了,人员对应的就诊记录,别弄得那么复杂

DanBrown | 园豆:1496 (小虾三级) | 2019-01-09 08:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册