索引堆插入操作应该先处理此索引已经存在的情况吧

来源:4-8 索引堆(Index Heap)

慕仔6092170

2019-07-20

用户很难保证提供的索引还没有在堆中,因为取出的索引是随机的,如果用户每次都传入不同的索引,数组很快就爆了,或者浪费空间

用户还可能多次在一个索引插入数据,index很快满了,data只有一个数

写回答

2回答

慕仔6092170

提问者

2019-07-20

手机上不知道怎么编辑问题,在这里接着说吧

索引堆插入操作让用户传一个索引,而不是像普通堆一样生成一个索引,是有些道理的,使用索引堆的用户一般不希望索引堆修改data数组,因为这是用户的数据,用户很可能需要用别的方式修改它。
我的想法是,可不可以这样,插入操作也别修改data数组了,把data数组交给用户维护,索引堆只需要用户提供一个根据索引查找数据的函数,这样索引堆只用维护一个indexes,是不是很酷!

1
1
liuyubobobo
你的想法完全没有问题。只不过又有索引和数据是高度关联的,分开维护其实是在给用户制造负担,封装在一起更方便。在这一章,我只是介绍了索引对这种数据结构,并没有实际使用。在课程的后续,图论的两个算法中,我们会实际使用索引堆,在那些使用场景中,你可愿意尝试一下,如果分开维护,代码是怎样的,是不是更麻烦?继续加油!:)
2019-07-21
共1条回复

liuyubobobo

2019-07-21

可以参考这里:https://coding.imooc.com/learn/questiondetail/40398.html 


继续加油!:)

0
0

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11144 学习 · 1611 问题

查看课程