gpt4 book ai didi

java - 有人可以向我解释间接堆/间接优先级队列的概念吗?

转载 作者:行者123 更新时间:2023-11-30 07:05:39 24 4
gpt4 key购买 nike

我必须为一个项目构建一个间接堆,我不太明白这意味着什么。如果您正在从数组中构建堆,那么实现间接寻址是否只是添加某种映射数据结构来将每个项目与其索引相关联?还是比这更复杂?

最佳答案

间接堆是一种堆,其中存储的数据项是保存实际项的列表、数组或其他数据结构的索引。

假设您有一个姓名列表:["jim","joe","bob","sam","susan","kelly","jessica"],其中你想建立一个堆。直接堆将具有:

         bob
joe jessica
sam susan jim kelly

间接堆将用列表中的索引替换堆中的名称:

         2
1 6
3 4 0 5

你的比较函数必须改变。您最终不是将 heap[0]heap[1] 进行比较,而是将 list[heap[0]]list 进行比较[堆[1]]

有些人称之为半间接堆。用他们的话说,直接堆包含从名称到索引的附加映射。

关于java - 有人可以向我解释间接堆/间接优先级队列的概念吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40182470/

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