gpt4 book ai didi

c - 在已插入订单元素中打印哈希表

转载 作者:太空宇宙 更新时间:2023-11-04 04:12:06 24 4
gpt4 key购买 nike

所以我有一个可以正常工作的哈希表,但是我需要一种方法来按照插入的顺序打印它的元素。我一直在考虑如何做到这一点,但我真正要做的唯一方法是用元素在哈希表之外创建一个列表并打印列表,但我试图避免这样做,因为这样做会挫败哈希表的全部目的。哈希表的每个元素要么为空(我不想打印)要么为链接列表。谢谢您!
不知道这是否有帮助,但是在链接列表中,每个节点都有一个结构和下一个指针。
编辑:我还必须删除数组元素中链接列表中的节点,这样就很难跟踪顺序。

最佳答案

哈希表不会跟踪插入内容的顺序。
但是,您可以很容易地扩展实现来跟踪这一点。由于使用链接列表进行链接,因此可以保留指向节点的指针数组,并且在向哈希表添加元素时,可以将指向该节点的指针添加到数组的后面。
类似这样的东西(尽管这显然取决于您的具体实现):

struct HT {
size_t count, capacity;
void **elements; // just an example of a possible implementation.
LL **order; // keep track of insertion order here.
}

order在这种情况下,应该在其中一个链接列表中存储指向某个元素的指针。遍历这个数组将按照元素插入的顺序为您提供元素。只要确保在添加或删除元素时都会更新 order

关于c - 在已插入订单元素中打印哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56029939/

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