请稍等 ...
×

采纳答案成功!

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

索引堆的插入操作不是应该 data[count+1] = item 吗?为什么是data[i] = item

索引堆的插入操作不是应该 data[count+1] = item 吗?为什么是data[i] = item

正在回答

1回答

liuyubobobo 2019-07-29 13:10:07

索引堆,初始虽然开出了count个空间,但是,其实是空的,往索引堆中添加一个元素, 是指给对应的索引赋值(包括维护相应的堆性质),让这个索引存在元素。


可以参考这里,理解一下索引堆的应用:https://coding.imooc.com/learn/questiondetail/99784.html 


不过在一章,确实:我只是给除了索引堆的实现,还没有看到索引堆的具体使用,所以很多同学可能不理解索引堆这样设计的原因。在这个课程的后续,无论是Prim最小生成树,还是Dijkstra最短路径,都会是用索引堆,届时,可能同学们就能更加深刻的理解索引堆的使用。在回头看这个问题,就明晰了:)


加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 慕婉清7522044 #1
    老师最近有点事没有看到,也就是说这个插入操作其实是赋值操作的意思吗?
    回复 有任何疑惑可以回复我~ 2019-07-30 22:42:27
  • liuyubobobo 回复 提问者 慕婉清7522044 #2
    data[i] = item; indexes[count+1] = i; 这两个赋值操作完成了插入动作。之后针对indexes维护堆性质。也可以参考这个补充说明,看能不能更好地理解索引堆:http://coding.imooc.com/learn/questiondetail/4945.html
    回复 有任何疑惑可以回复我~ 2019-07-31 00:22:19
  • 提问者 慕婉清7522044 回复 liuyubobobo #3
    也就是说这两次赋值,只是插入操作(也就是change操作),并不是添加新元素的操作。
    回复 有任何疑惑可以回复我~ 2019-07-31 00:33:37
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信