请稍等 ...
×

采纳答案成功!

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

堆元素的上浮

通过swap这个方法不是已经把k和k的父节点进行交换了么,为什么还要在写一句k=parent(k)。
图片描述

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

1回答

liuyubobobo 2019-04-22 06:24:09

我们实现的swap(i, j),swap的是data[i]和data[j]:

public void swap(int i, int j){    

    if(i < 0 || i >= size || j < 0 || j >= size)    
        throw new IllegalArgumentException("Index is illegal.");    

    E t = data[i];    
    data[i] = data[j];    
    data[j] = t;    
}

 

而k=parent(k),在维护k:)


继续加油!:)


0 回复 有任何疑惑可以回复我~
  • 是不是说swap是将数组中的元素进行了互换,K是相当于堆中的指针(类似于头结点?)啊,数组互换后,指针就指向了parent(k),波波老师我这样理解对不对 啊
    回复 有任何疑惑可以回复我~ 2020-06-11 15:09:26
  • 对。互换的是元素,k 是一个索引。
    回复 有任何疑惑可以回复我~ 2020-06-12 02:54:20
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

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

帮助反馈 APP下载

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

公众号

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