Como se muestra a continuación:
Importar java.util.arrays; // El código del pequeño montón superior implementa el montón de clase pública {// Ajustar hacia abajo, el valor máximo en la parte superior es hacia abajo, que se usa principalmente para eliminar y construir el montón. i represents the node index to be adjusted, n represents the most element index of the heap.// When deletion, i is 0. When building the heap, i adjusts forward from the parent node of the last node public static void fixDown(int[] data, int i, int n) {int num = data[i];int son = i * 2 + 1;while (son <= n) {if (son + 1 <= n && data[son + 1] <data [son]) son ++; if (num <data [son]) break; data [i] = data [son]; i = son; son = i * 2+1;} data [i] = num;} // ajustar hacia arriba, el valor pequeño va hacia arriba, usado para aumentar y ajustar hacia arriba no requiere configurar el índice superior, definitivamente es 0 puttatic estatic estatic rectup (int [] data, int n) int nm = n n. - 1)/ 2; // datos [padre]> num es la condición básica para ingresar al bucle. Si el padre disminuye a 0, no disminuirá // cuando n sea igual a 0, padre = 0; entra en el bucle muerto, por lo que cuando n == 0, debe saltar del bucle mientras (data [padre]> num && n! = 0) {data [n] = data [padre]; n = padre; padre = (n - 1)/ 2;} data [n] = num;} //, n representa el índice del último elemento del hojalete público no -doste (int [] data, int n) {Data n) {0] [0] [0] [0] [0] datos [n]; datos [n] = -1; fixdown (datos, 0, n - 1);} // aumentar, i representa el número que se agregará, n representa el índice de la posición que se agregará, es el último elemento de la inserción pública void estatica de HEAP (int [] data, int n) {data [n] = num; fixUp (datos, n);} // construye el hechice, n representa el Índice de la actualización del heticomático de los datos de la actualización de los datos de la actualización de los datos de la actualización de los últimos datos de la actualización de los htanp, el último de los datos de la actualización de los htanp, n. public static void create (int [] data, int n) {for (int i = (n -1)/ 2; i> = 0; i -) fixdown (datos, i, n);} public static void main (string [] args) {int [] data = {15, 13, 1, 5, 20, 12, 8, 9, 11}; // prueba la creación de la creación (datos, datos. 1); system.out.println (arrays.toString (data)); // test Elete (data, data.length - 1); delete (data, data.length - 2); system.out.println (arrays.tostring (data); // test (data, 3, data.length - 2); system.println (arrays.tosting (data);El artículo anterior sobre la operación del montón de implementación de Java (montón de edificios, insertar, eliminar) es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.