在哈希表中找到最大值,然后打印具有该值的所有变量(在C中)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在哈希表中找到最大值,然后打印具有该值的所有变量(在C中)相关的知识,希望对你有一定的参考价值。
具有这样的结构:
typedef struct person {
char *name;
int age;
} person
我在哈希表中插入我创建的每个人,而我想要做的就是找到最老的人,像这样:
Oldest People:
Austin 29
John 29
Matthew 29
我想知道是否有比两次搜索哈希表更有效的方法来找到最大年龄:一种方法是找到最大值,另一种方法是将所有带有最大值的人打印出来。
答案
您可以在插入时确定最大年龄。无论如何,您都需要该if子句,但是通过这种方式,您可以节省遍历哈希表的时间。
除此之外,您没有说哈希表的键是什么。我想这是名字,因为您没有提到解决年龄冲突,而是提到需要第二次通过。
而且我想您的哈希表的目的不仅仅是解决这个问题。但是如果是这样,我不会使用哈希表,而只是保留具有当前最大年龄的名称列表,并在最大年龄更改后立即将其重置。如果您知道最大大小,则可以将列表实现为数组+大小变量,否则例如以及固定大小的块的链接列表。
以上是关于在哈希表中找到最大值,然后打印具有该值的所有变量(在C中)的主要内容,如果未能解决你的问题,请参考以下文章