[英]find the maximum value in a hash table and then printing all the variables with that value (in C)
有这样的结构:
typedef struct person {
char *name;
int age;
} person
我将我创建的每个人插入到 hash 表中,我想做的是找到最年长的人,如下所示:
Oldest People:
Austin 29
John 29
Matthew 29
我想知道是否有比搜索 hash 表两次更有效的方法来找到最大年龄:一次找到最大值,另一个打印所有具有最大值的人。
您可以在插入时确定最大年龄。 无论如何你都需要那个 if 子句,但这样你就可以省去 hash 表的麻烦。
除此之外,您没有说 hash 表的密钥是什么。 我想,这是名字,因为你没有提到解决年龄冲突,你提到需要第二次通过。
而且我猜您的 hash 表的目的不仅仅是解决这个问题。 但如果是这样,我不会使用 hash 表,而只是保留当前最大年龄的名称列表,并在最大年龄更改后立即重置它。 如果您知道最大大小,则可以将列表实现为数组 + 大小变量,否则例如使用固定大小块的链表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.