删除max heap java中的max

删除max heap java中的max,java,max,heap,Java,Max,Heap,我正在处理最大堆。我可以添加信息,但是当我删除max时,出现了一些问题。它可以用13来交换数字。不知道为什么。有人能看看我的代码,找出哪里不起作用吗 它打印:Heap 55 46 23 13 45 22 17 16 1 12 当它应该打印时:Heap=55 46 23 44 45 22 17 13 16 1 12 谢谢大家! private int-current//堆中当前的节点数 私人机构【】cu//保存堆的数组 公共静态最终int maxSize=20; 公共堆() { cu=新整数[ma

我正在处理最大堆。我可以添加信息,但是当我删除max时,出现了一些问题。它可以用13来交换数字。不知道为什么。有人能看看我的代码,找出哪里不起作用吗

它打印:
Heap 55 46 23 13 45 22 17 16 1 12

当它应该打印时:
Heap=55 46 23 44 45 22 17 13 16 1 12

谢谢大家!

private int-current//堆中当前的节点数
私人机构【】cu//保存堆的数组
公共静态最终int maxSize=20;
公共堆()
{
cu=新整数[maxSize];
电流=长度();
}
私有整数长度()
{
对于(int i=1;i1)
{
to=t/2;

如果((int)newNode我仍然不理解这个问题!删除方法将一些数字改为13而不是实际数字。它不打印:55,46,23,44,45,22,17,13,16,1,12,而是打印:55 46 23 13 45 22 17 16 11 12或者它不更改数字,您的heapify方法在删除最大值后移动数字13?可能,我不确定。我需要我想说的是,如果你删除最大值,13可能在正确的位置!因为树应该会自动刷新!我仍然不理解这个问题!删除方法将一些数字改为13,而不是实际数字。而不是打印:55,46,23,44,45,22,17,13,16,1,12它打印:55 46 23 45 22 17 13 16 1 12或者它不会改变数字,你的heapify方法会在删除最大值后移动数字13?也许,我不确定。我需要一些关于如何更改的指导。我想说的是,如果你删除最大值,13可能会在正确的位置!因为树本身应该heapify!