Estou tentando criar um codido para transformar um heap em um heap maximo. Se alguem puder ajudar… Agradeço.
Segue abaixo o cod:
import java.util.Scanner;
public class Heap {
public static void main ( String args[]){
Scanner leitor = new Scanner ( System.in );
int tam;
System.out.println( "Digite o tamnanho: " );
tam = leitor.nextInt();
int vet[] = new int[tam];
le( vet );
imprime( vet );
maxHeap(vet, 1);
System.out.println( "maxHeap" );
imprime( vet );
}
public static void le(int vet[]){
Scanner leitor = new Scanner( System.in );
for ( int i=0; i<vet.length; i++ ){
System.out.println( "Digite o valor: " );
vet[i] = leitor.nextInt();
}
}
public static void imprime ( int vet[] ){
for ( int i=0; i<vet.length; i++ )
System.out.print( vet[i] + " " );
System.out.println();
}
public static void maxHeap ( int vet[] , int i ){
int l = vet[2*i];
int r = vet[2*i+1];
int maior, temp;
if (( l <= vet.length ) && ( vet[l]>vet[i] ))
maior = l;
else
maior = i;
if (( r<=vet.length ) && ( vet[r]>vet[maior] )){
maior = r;
}
if ( maior != i ){
temp = vet[i];
vet[i] = vet[maior];
vet[maior] = temp;
maxHeap ( vet, maior );
}
}
}