关于索引堆i的范围

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

weixin_慕设计6333414

2021-05-28

图片描述老师您好,请问图中红框部分为什么要这么定义i的范围呢?比如capacity=3,我想在data[]下标为3的位置插入一个元素,令i=3,那么就不满足红框定义的范围了。

写回答

1回答

liuyubobobo

2021-05-28

capacity = 3,对用户来说,有效的索引是 0 1 2,3 是无效的,所以当 i= 3 的时候,不满足这个范围,程序中断。


继续加油!:)

0
2
liuyubobobo
回复
_江湖郎中
如果只是判断 i+1<=count,索引堆和普通的对没有区别,只是一个一个添加元素而已。索引堆可以做到的是,在堆为空的情况下,添加学号是 16 号(索引是 16)的学生成绩。此时 count 为 1,索引 i = 16,16 > 1,但是索引堆能完成这个添加。 依然是,这里的核心是:索引堆的应用场景问题是什么。在这一小节,我们没有介绍索引岁的应用场景。在这个课程的后续的图论算法部分,你会看到对索引堆的应用,就会明白索引堆为什么这么设计了。在这个问答下,我简单描述了一些索引堆的应用场景,请再体会一下,索引堆的索引是有语义的,不是简单的“在数组中排第几个”而已:https://coding.imooc.com/learn/questiondetail/99784.html 继续加油!:)
2022-05-16
共2条回复

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

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

11187 学习 · 1614 问题

查看课程