C 我需要一个建议,以优化实施的程序与优先队列和搜索
我必须制作一个程序,从文件中读取医院的患者名单,每个患者都有优先权 所以我决定在二进制堆中设置优先级队列,因为插入和删除是O log(n),而获得要治疗的患者是O(1),这对于这个程序来说已经足够了。我将堆存储在指向struct patient的指针的动态数组中。这个很好用 但我也必须能够通过他的安全号码找到患者,而这在一堆中是不可能的(到目前为止我知道) 所以我想制作一个哈希表,当我将一个病人添加到堆中时,hi也将被添加到哈希表中(所有这些工作都与指针有关) 这是一个很好的方法吗?或者我必须重新考虑要使用的数据结构,并使用另一个ADT重新制作程序?(请不要) 结构的代码:C 我需要一个建议,以优化实施的程序与优先队列和搜索,c,pointers,queue,adt,C,Pointers,Queue,Adt,我必须制作一个程序,从文件中读取医院的患者名单,每个患者都有优先权 所以我决定在二进制堆中设置优先级队列,因为插入和删除是O log(n),而获得要治疗的患者是O(1),这对于这个程序来说已经足够了。我将堆存储在指向struct patient的指针的动态数组中。这个很好用 但我也必须能够通过他的安全号码找到患者,而这在一堆中是不可能的(到目前为止我知道) 所以我想制作一个哈希表,当我将一个病人添加到堆中时,hi也将被添加到哈希表中(所有这些工作都与指针有关) 这是一个很好的方法吗?或者我必须重
typedef struct patient {
char name[20];
char lastName[20];
char securityNumber[20];
char birthDate[8];
int priority;
}PATIENT;
typedef struct binary_heap{
PAT** patHeap;
int n;
}HEAP;
在堆和哈希表中插入和删除就足够了。但是拥有更多的指针意味着需要使用更多的内存
这是我第一次制作这种“真正的节目”,所以如果你们能给我一些建议,我将非常感激
谢谢 问题:如何通过社保号码选择患者 如果社会保险号是用于在链表中创建节点的结构中的字段。简单地从链表的头指针开始,一步一步地遍历链表。在链接列表中的每个节点上,将目标社会保险号与节点中的条目进行比较。找到匹配项后,指向该节点的指针将指向所需的患者 不过,请了解一些社会保险号码。例如,它们不是#########################################c,在这里
if you had posted the code,
then we could post matching code
for the function that finds a patient
via their social security number.
BTW:
a patients social security number is a bit of sensitive information.
so the code should encrypt that field.
太多的代码了,我不知道怎么发布。但我知道我张贴了结构。我考虑过了,但我正在努力避免线性搜索或比O log(n)更糟糕的搜索。我想我会在数组中使用二进制搜索,谢谢你的帮助!