用三个0和4 6 7 9这三个数组最小的七位4000679

解析:通常,引用一个数组元素可以鼡下标法,如a[p-a]形式,或指针法,如*(&a[i])的形式本题中a[9]=9,a[10]显然超出数组范围,注意,数组的下标是从0开始的。

这种题目还是楼上用画图的形式悝解起来简单直观

删除零号元素后,最后一个元素替换零号元素然后调用下滑调整算法。

删除堆顶元素以后要用最后一个元素替换

对於最小堆和最大堆而言删除是针对于根节点而言。对于删除操作将二叉树的最后一个节点替换到根节点,然后自顶向下递归调整。

刪除最小元素在根节点

所以将最后一个元素放到根节点,进行下沉操作(sink());

堆按照完全二叉树排列但不是完全二叉排序树

首先,题目有问题[0,21,43,95, 8 6,7] 原数组是这样才对得上号。

即先将堆的最后元素代替堆顶元素再和左右子树比较,与最小元素交換直至终结

最小堆删除堆顶后,用最小堆删除堆顶后用最后一个元素暂代堆顶一个元素暂代堆顶,删除顶元素后最后一个元素替换,而不是第二层中小的那个数替换上

记得是最后一个补到第一个挪走的元素

7上移再重新调整顺序。

删除堆顶元素后将最后一个元素暂放到堆顶,因为堆的数据由上层到下层的建值逐渐变小。所以将新得到的堆顶元素7依次与堆下层的元素相比较如果下层有比7小的,则選出其中的最小值与7交换依次到最底层,执行完毕新的堆序则产生。

题目不会做首先问问自己,这个概念还记得吗很多题不会做,很大原因是忘记了概念比如这道题,删除最小数后该把哪个数替换上。

起始为小顶堆因此根节点为0,第一层从左到右为2,1第三层從左到右为4395,第四层从左到右为867当0删除后,7变为根节点此时根节点的孩子为2和1,根节点为7的节点和1孩子节点交换位置即它的右孩子,然后7节点的孩子变为9和5,7和5交换因此最后变为1、2、5、4、3、9、7、8、6

我不会解这道题,求解!

step1:去掉0将最后一位放到第一位0的位置,此时非朂小堆

step2:将7与左右子节点中比较小的1交换。此时依然非最小堆

step3:将7与左右节点中最小的5交换,此时为最小堆

你对这个回答的评价是

你对这個回答的评价是?

采纳数:2 获赞数:6 LV2

你对这个回答的评价是

你对这个回答的评价是?

你对这个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

我要回帖

 

随机推荐