采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
通过swap这个方法不是已经把k和k的父节点进行交换了么,为什么还要在写一句k=parent(k)。
我们实现的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:)
继续加油!:)
是不是说swap是将数组中的元素进行了互换,K是相当于堆中的指针(类似于头结点?)啊,数组互换后,指针就指向了parent(k),波波老师我这样理解对不对 啊
对。互换的是元素,k 是一个索引。
登录后可查看更多问答,登录/注册
动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…
11.5k 16
1.9k 17
1.7k 14
1.8k 14
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号