gpt4 book ai didi

c - 我需要有关优先级队列和搜索的程序的最佳实现的建议

转载 作者:行者123 更新时间:2023-11-30 17:18:50 27 4
gpt4 key购买 nike

我必须编写一个程序来从文件中读取医院的患者名单,每个患者都有一个优先级。

所以我决定将优先级队列放在二叉堆中,因为插入和删除都是O log(n),而获取要治疗的病人是O(1),对于这个程序来说已经足够了。我将堆存储在指向结构病人的动态指针数组中。这工作得很好。

但我还必须能够通过患者的安全号码找到患者,而这在一堆中是不可能的(到目前为止我知道)。

所以我想制作一个哈希表,当我将患者添加到堆中时,hi 也将被添加到哈希表中(所有这些工作都是使用指针)。

这是一个好方法吗?或者我必须重新考虑要使用的数据结构并使用另一个 ADT 重新制作程序? (请不要)。

结构体代码:

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,其中最后的“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.

关于c - 我需要有关优先级队列和搜索的程序的最佳实现的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29063967/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com