Como mostrado abaixo:
importar java.util.arrays; // O código do pequeno heap principal implementa a classe pública Heap {// Ajuste para baixo, o valor máximo na parte superior está abaixo, que é usado principalmente para excluir e construir a pilha. I Representa o índice do nó a ser ajustado, n representa o índice mais elemante do heap.// Quando a exclusão, I é 0. Ao construir o heap, ajusto a frente do nó pai do último nó public estático void FixDown (int [] dados Int I, int n) {int num = Data [i]; int SON = i * 2 1; 1] <dados [filho]) filho ++; if (num <dados [filho]) quebra; dados [i] = dados [filho]; i = filho; filho = i * 2+1;} dados [i] = num;} // ajuste para cima, o valor intenso é o que é necessário, o que é necessário [o sinhing); = (n - 1)/ 2; // dados [pai]> num é a condição básica para entrar no loop. Se o pai diminuir para 0, não diminuirá // quando n for igual a 0, pai = 0; entra no loop morto; portanto, quando n == 0, você precisa sair do loop enquanto (dados [pai]> num && n! = 0) {data [n] = dados [pai]; n = pai; pai = (n - 1)/ 2;} dados [n] = num;} // delete, n representa o Índice do elemento dos dados do inseto. Dados [n]; dados [n] = -1; FixDown (dados, 0, n - 1);} // aumenta, i representa o número a ser adicionado, n representa o índice da posição a ser adicionada, é o último elemento do hEP Public estático inserto (int [] dados int n) {data [n] = num; do heap public static void cret (int [] dados, int n) {for (int i = (n -1)/ 2; i> = 0; i -) FixDown (dados, i, n);} public static void main (string [] args) {int [] dados = {15, 1, 1, 5, 20, 12, 8, 8, 11, 11}; 1); System.out.println (Arrays.ToString (Data)); // Teste Excluir (Data, Data.Length - 1); Delete (Data, Data.Length - 2); System.out.println (MRARYS.ToString (Data));O artigo acima sobre operação de heap de implementação de Java (construção de pilha, inserção, exclusão) é todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.