采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
索引堆的插入操作不是应该 data[count+1] = item 吗?为什么是data[i] = item
索引堆,初始虽然开出了count个空间,但是,其实是空的,往索引堆中添加一个元素, 是指给对应的索引赋值(包括维护相应的堆性质),让这个索引存在元素。
可以参考这里,理解一下索引堆的应用:https://coding.imooc.com/learn/questiondetail/99784.html
不过在一章,确实:我只是给除了索引堆的实现,还没有看到索引堆的具体使用,所以很多同学可能不理解索引堆这样设计的原因。在这个课程的后续,无论是Prim最小生成树,还是Dijkstra最短路径,都会是用索引堆,届时,可能同学们就能更加深刻的理解索引堆的使用。在回头看这个问题,就明晰了:)
加油!:)
老师最近有点事没有看到,也就是说这个插入操作其实是赋值操作的意思吗?
data[i] = item; indexes[count+1] = i; 这两个赋值操作完成了插入动作。之后针对indexes维护堆性质。也可以参考这个补充说明,看能不能更好地理解索引堆:http://coding.imooc.com/learn/questiondetail/4945.html
也就是说这两次赋值,只是插入操作(也就是change操作),并不是添加新元素的操作。
登录后可查看更多问答,登录/注册
课程专为:短时间内应对面试、升职测评等艰巨任务打造
9.0k 21
5.8k 3
5.1k 5
1.5k 18
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号