请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于索引堆i的范围

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

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2021-05-28 14:22:07

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


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 老师,指定位置i插入元素,应该需要保证堆是完全二叉树,感觉不能用i+1<=capacity, 而是先检验count+1合法后,count++, 再通过 i+1<=count判断i的合法性。
    回复 有任何疑惑可以回复我~ 2022-05-15 15:54:23
  • 如果只是判断  i+1<=count,索引堆和普通的对没有区别,只是一个一个添加元素而已。索引堆可以做到的是,在堆为空的情况下,添加学号是 16 号(索引是 16)的学生成绩。此时 count 为 1,索引 i = 16,16 > 1,但是索引堆能完成这个添加。
    
    依然是,这里的核心是:索引堆的应用场景问题是什么。在这一小节,我们没有介绍索引岁的应用场景。在这个课程的后续的图论算法部分,你会看到对索引堆的应用,就会明白索引堆为什么这么设计了。在这个问答下,我简单描述了一些索引堆的应用场景,请再体会一下,索引堆的索引是有语义的,不是简单的“在数组中排第几个”而已:https://coding.imooc.com/learn/questiondetail/99784.html
    
    继续加油!:)
    回复 有任何疑惑可以回复我~ 2022-05-16 06:09:17
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号