3. Un montículo (heap en inglés) es una estructura de datos del tipo árbol con información perteneciente a un conjunto ordenado. Los montículos máximos tienen la característica de que cada nodo padre tiene un valor mayor que el de todos sus nodos hijos, mientras que en los montículos mínimos, el valor del nodo padre es siempre menor al de sus nodos hijos.
4. Un árbol cumple la condición de montículo si satisface dicha condición y además es un árbol binario completo. Un árbol binario es completo cuando todos los niveles están llenos, con la excepción del último, que se llena desde la izquierda hacia la derecha. En un montículo de prioridad, el mayor elemento (o el menor, dependiendo de la relación de orden escogida) está siempre en el nodo raíz. Por esta razón, los montículos son útiles para implementar colas de prioridad.
5. Una ventaja que poseen los montículos es que, por ser árboles completos, se pueden implementar usando arreglos, lo cual simplifica su codificación y libera al programador del uso de punteros. La eficiencia de las operaciones en los montículos es crucial en diversos algoritmos de recorrido de grafos y de ordenamiento (heapsort)
11. publicclassQk { int m; publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . kt.k += 7; Qk j = new Qk(); j.setM(4); System.out.println(kt.m); int p = kt.getK(); System.out.println(p); } intgetK() { returnthis.k; } voidsetM(int g) { this.m = g; } int k = 8; }
12. publicclassQk { int m; // 3. Se crea la variable ”m”. publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . kt.k += 7; Qk j = new Qk(); j.setM(4); System.out.println(kt.m); int p = kt.getK(); System.out.println(p); } intgetK() { returnthis.k; } voidsetM(int g) { this.m = g; } int k = 8; }
13. publicclassQk { int m; // 3. Se crea la variable ”m”. publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . kt.k += 7; Qk j = new Qk(); j.setM(4); System.out.println(kt.m); int p = kt.getK(); System.out.println(p); } intgetK() { returnthis.k; } voidsetM(int g) { this.m = g; } int k = 8; // 4. Se crea la variable “k” con valor 8. }
14. publicclassQk { int m; // 3. Se crea la variable ”m”. publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; Qk j = new Qk(); j.setM(4); System.out.println(kt.m); int p = kt.getK(); System.out.println(p); } intgetK() { returnthis.k; } voidsetM(int g) { this.m = g; } int k = 8; // 4. Se crea la variable “k” con valor 8. }
15. publicclassQk { int m; // 3. Se crea la variable ”m”. publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; // 6. A la primera variable “kl.k” se da valor de 8 y se le suma 7 Qk j = new Qk(); j.setM(4); System.out.println(kt.m); int p = kt.getK(); System.out.println(p); } intgetK() { returnthis.k; } voidsetM(int g) { this.m = g; } int k = 8; // 4. Se crea la variable “k” con valor 8. }
16. publicclassQk { int m; // 3. Se crea la variable ”m”. publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; // 6. A la primera variable “kl.k” se da valor de 8 y se le suma 7 Qk j = new Qk(); // 7 . Se crea el objeto de la clase. j.setM(4); System.out.println(kt.m); int p = kt.getK(); System.out.println(p); } intgetK() { returnthis.k; } voidsetM(int g) { this.m = g; } int k = 8; // 4. Se crea la variable “k” con valor 8. }
17. publicclassQk { int m; // 3. Se crea la variable ”m”. 8. regresa al variable “m” publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; // 6. A la primera variable “kl.k” se da valor de 8 y se le suma 7 Qk j = new Qk(); // 7 . Se crea el objeto de la clase. j.setM(4); System.out.println(kt.m); int p = kt.getK(); System.out.println(p); } intgetK() { returnthis.k; } voidsetM(int g) { this.m = g; } int k = 8; // 4. Se crea la variable “k” con valor 8. }
18. publicclassQk { int m; // 3. Se crea la variable ”m”. 8. regresa al variable “m” publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; // 6. A la primera variable “kl.k” se da valor de 8 y se le suma 7 Qk j = new Qk(); // 7 . Se crea el objeto de la clase. j.setM(4); System.out.println(kt.m); int p = kt.getK(); System.out.println(p); } intgetK() { returnthis.k; } voidsetM(int g) { this.m = g; } int k = 8; // 4. Se crea la variable “k” con valor 8. 9. regresa al variable “k” }
19. publicclassQk { int m; // 3. Se crea la variable ”m”. 8. regresa al variable “m” publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; // 6. A la primera variable “kl.k” se da valor de 8 y se le suma 7 Qk j = new Qk(); // 7 . Se crea el objeto de la clase. 10 . Regresa al objeto j.setM(4); System.out.println(kt.m); int p = kt.getK(); System.out.println(p); } intgetK() { returnthis.k; } voidsetM(int g) { this.m = g; } int k = 8; // 4. Se crea la variable “k” con valor 8. 9. regresa al variable “k” }
20. publicclassQk { int m; // 3. Se crea la variable ”m”. 8. regresa al variable “m” publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; // 6. A la primera variable “kl.k” se da valor de 8 y se le suma 7 Qk j = new Qk(); // 7 . Se crea el objeto de la clase. 10 . Regresa al objeto j.setM(4); // 11. En el objeto j el método setM le pasa como parámetro el valor 4 System.out.println(kt.m); int p = kt.getK(); System.out.println(p); } intgetK() { returnthis.k; } voidsetM(int g) { this.m = g; } int k = 8; // 4. Se crea la variable “k” con valor 8. 9. regresa al variable “k” }
21. publicclassQk { int m; // 3. Se crea la variable ”m”. 8. regresa al variable “m” publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; // 6. A la primera variable “kl.k” se da valor de 8 y se le suma 7 Qk j = new Qk(); // 7 . Se crea el objeto de la clase. 10 . Regresa al objeto j.setM(4); // 11. En el objeto j el método setM le pasa como parámetro el valor 4 System.out.println(kt.m); int p = kt.getK(); System.out.println(p); } intgetK() { returnthis.k; } voidsetM(int g) { // 12. Crea el método set this.m = g; } int k = 8; // 4. Se crea la variable “k” con valor 8. 9. regresa al variable “k” }
22. publicclassQk { int m; // 3. Se crea la variable ”m”. 8. regresa al variable “m” publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; // 6. A la primera variable “kl.k” se da valor de 8 y se le suma 7 Qk j = new Qk(); // 7 . Se crea el objeto de la clase. 10 . Regresa al objeto j.setM(4); // 11. En el objeto j el método setM le pasa como parámetro el valor 4 System.out.println(kt.m); int p = kt.getK(); System.out.println(p); } intgetK() { returnthis.k; } voidsetM(int g) { // 12. Crea el método set this.m = g; // 13. Especifica la referencia } int k = 8; // 4. Se crea la variable “k” con valor 8. 9. regresa al variable “k” }
23. publicclassQk { int m; // 3. Se crea la variable ”m”. 8. regresa al variable “m” publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; // 6. A la primera variable “kl.k” se da valor de 8 y se le suma 7 Qk j = new Qk(); // 7 . Se crea el objeto de la clase. 10 . Regresa al objeto j.setM(4); // 11. En el objeto j el método setM le pasa como parámetro el valor 4 System.out.println(kt.m); int p = kt.getK(); System.out.println(p); } intgetK() { returnthis.k; } voidsetM(int g) { // 12. Crea el método set this.m = g; // 13. Especifica la referencia } // 14. Desactiva el método setM int k = 8; // 4. Se crea la variable “k” con valor 8. 9. regresa al variable “k” } X
24. publicclassQk { int m; // 3. Se crea la variable ”m”. 8. regresa al variable “m” publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; // 6. A la primera variable “kl.k” se da valor de 8 y se le suma 7 Qk j = new Qk(); // 7 . Se crea el objeto de la clase. 10 . Regresa al objeto j.setM(4); // 11. En el objeto j el método setM le pasa como parámetro el valor 4 System.out.println(kt.m); // 15. Se muestra el valor de “kt.m” y salto de línea int p = kt.getK(); System.out.println(p); } intgetK() { returnthis.k; } voidsetM(int g) { // 12. Crea el método set this.m = g; // 13. Especifica la referencia } // 14. Desactiva el método setM int k = 8; // 4. Se crea la variable “k” con valor 8. 9. regresa al variable “k” } X
25. publicclassQk { int m; // 3. Se crea la variable ”m”. 8. regresa al variable “m” publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; // 6. A la primera variable “kl.k” se da valor de 8 y se le suma 7 Qk j = new Qk(); // 7 . Se crea el objeto de la clase. 10 . Regresa al objeto j.setM(4); // 11. En el objeto j el método setM le pasa como parámetro el valor 4 System.out.println(kt.m); // 15. Se muestra el valor de “kt.m” y salto de línea int p = kt.getK(); // 16. Se crea la variable ”p”, inicializándola con el objeto y el kt método getK. System.out.println(p); } intgetK() { returnthis.k; } voidsetM(int g) { // 12. Crea el método set this.m = g; // 13. Especifica la referencia } // 14. Desactiva el método setM int k = 8; // 4. Se crea la variable “k” con valor 8. 9. regresa al variable “k” } X
26. publicclassQk { int m; // 3. Se crea la variable ”m”. 8. regresa al variable “m” publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; // 6. A la primera variable “kl.k” se da valor de 8 y se le suma 7 Qk j = new Qk(); // 7 . Se crea el objeto de la clase. 10 . Regresa al objeto j.setM(4); // 11. En el objeto j el método setM le pasa como parámetro el valor 4 System.out.println(kt.m); // 15. Se muestra el valor de “kt.m” y salto de línea int p = kt.getK(); // 16. Se crea la variable ”p”, inicializándola con el objeto y el kt método getK. System.out.println(p); } intgetK() { // 17. Creación del método getK returnthis.k; } voidsetM(int g) { // 12. Crea el método set this.m = g; // 13. Especifica la referencia } // 14. Desactiva el método setM int k = 8; // 4. Se crea la variable “k” con valor 8. 9. regresa al variable “k” } X
27. publicclassQk { int m; // 3. Se crea la variable ”m”. 8. regresa al variable “m” publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; // 6. A la primera variable “kl.k” se da valor de 8 y se le suma 7 Qk j = new Qk(); // 7 . Se crea el objeto de la clase. 10 . Regresa al objeto j.setM(4); // 11. En el objeto j el método setM le pasa como parámetro el valor 4 System.out.println(kt.m); // 15. Se muestra el valor de “kt.m” y salto de línea int p = kt.getK(); // 16. Se crea la variable ”p”, inicializándola con el objeto y el kt método getK. System.out.println(p); } intgetK() { // 17. Creación del método getK returnthis.k; // 18. Regresa la especificación de la referencia } voidsetM(int g) { // 12. Crea el método set this.m = g; // 13. Especifica la referencia } // 14. Desactiva el método setM int k = 8; // 4. Se crea la variable “k” con valor 8. 9. regresa al variable “k” } X
28. publicclassQk { int m; // 3. Se crea la variable ”m”. 8. regresa al variable “m” publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; // 6. A la primera variable “kl.k” se da valor de 8 y se le suma 7 Qk j = new Qk(); // 7 . Se crea el objeto de la clase. 10 . Regresa al objeto j.setM(4); // 11. En el objeto j el método setM le pasa como parámetro el valor 4 System.out.println(kt.m); // 15. Se muestra el valor de “kt.m” y salto de línea int p = kt.getK(); // 16. Se crea la variable ”p”, inicializándola con el objeto y el kt método getK. System.out.println(p); } intgetK() { // 17. Creación del método getK returnthis.k; // 18. Regresa la especificación de la referencia } // 19. Desactiva el método getK voidsetM(int g) { // 12. Crea el método set this.m = g; // 13. Especifica la referencia } // 14. Desactiva el método setM int k = 8; // 4. Se crea la variable “k” con valor 8. 9. regresa al variable “k” } X X
29. publicclassQk { int m; // 3. Se crea la variable ”m”. 8. regresa al variable “m” publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; // 6. A la primera variable “kl.k” se da valor de 8 y se le suma 7 Qk j = new Qk(); // 7 . Se crea el objeto de la clase. 10 . Regresa al objeto j.setM(4); // 11. En el objeto j el método setM le pasa como parámetro el valor 4 System.out.println(kt.m); // 15. Se muestra el valor de “kt.m” y salto de línea int p = kt.getK(); // 16. Se crea la variable ”p”, inicializándola con el objeto y el kt método getK. 20. Regresa a la variable p System.out.println(p); } intgetK() { // 17. Creación del método getK returnthis.k; // 18. Regresa la especificación de la referencia } // 19. Desactiva el método getK voidsetM(int g) { // 12. Crea el método set this.m = g; // 13. Especifica la referencia } // 14. Desactiva el método setM int k = 8; // 4. Se crea la variable “k” con valor 8. 9. regresa al variable “k” } X X
30. publicclassQk { int m; // 3. Se crea la variable ”m”. 8. regresa al variable “m” publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; // 6. A la primera variable “kl.k” se da valor de 8 y se le suma 7 Qk j = new Qk(); // 7 . Se crea el objeto de la clase. 10 . Regresa al objeto j.setM(4); // 11. En el objeto j el método setM le pasa como parámetro el valor 4 System.out.println(kt.m); // 15. Se muestra el valor de “kt.m” y salto de línea int p = kt.getK(); // 16. Se crea la variable ”p”, inicializándola con el objeto y el kt método getK. 20. Regresa a la variable p System.out.println(p); // 21 . Se muestra el valor de la variable “p” y salto de línea. } intgetK() { // 17. Creación del método getK returnthis.k; // 18. Regresa la especificación de la referencia } // 19. Desactiva el método getK voidsetM(int g) { // 12. Crea el método set this.m = g; // 13. Especifica la referencia } // 14. Desactiva el método setM int k = 8; // 4. Se crea la variable “k” con valor 8. 9. regresa al variable “k” } X X
31. publicclassQk { int m; // 3. Se crea la variable ”m”. 8. regresa al variable “m” publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; // 6. A la primera variable “kl.k” se da valor de 8 y se le suma 7 Qk j = new Qk(); // 7 . Se crea el objeto de la clase. 10 . Regresa al objeto j.setM(4); // 11. En el objeto j el método setM le pasa como parámetro el valor 4 System.out.println(kt.m); // 15. Se muestra el valor de “kt.m” y salto de línea int p = kt.getK(); // 16. Se crea la variable ”p”, inicializándola con el objeto y el kt método getK. 20. Regresa a la variable p System.out.println(p); // 21 . Se muestra el valor de la variable “p” y salto de línea. } // 22. Desactiva la ejecución del método main intgetK() { // 17. Creación del método getK returnthis.k; // 18. Regresa la especificación de la referencia } // 19. Desactiva el método getK voidsetM(int g) { // 12. Crea el método set this.m = g; // 13. Especifica la referencia } // 14. Desactiva el método setM int k = 8; // 4. Se crea la variable “k” con valor 8. 9. regresa al variable “k” } X X X
32. publicclassQk { int m; // 3. Se crea la variable ”m”. 8. regresa al variable “m” publicstaticvoidmain() { // 1. Se crea el registro de activación de “main”. Qkkt = new Qk(); // 2. Se crea el objeto de la clase . 5. Regresa al objeto kt.k += 7; // 6. A la primera variable “kl.k” se da valor de 8 y se le suma 7 Qk j = new Qk(); // 7 . Se crea el objeto de la clase. 10 . Regresa al objeto j.setM(4); // 11. En el objeto j el método setM le pasa como parámetro el valor 4 System.out.println(kt.m); // 15. Se muestra el valor de “kt.m” y salto de línea int p = kt.getK(); // 16. Se crea la variable ”p”, inicializándola con el objeto y el kt método getK. 20. Regresa a la variable p System.out.println(p); // 21 . Se muestra el valor de la variable “p” y salto de línea. } // 22. Desactiva la ejecución del método main intgetK() { // 17. Creación del método getK returnthis.k; // 18. Regresa la especificación de la referencia } // 19. Desactiva el método getK voidsetM(int g) {// 12. Crea el método set this.m = g; // 13. Especifica la referencia } // 14. Desactiva el método setM int k = 8; // 4. Se crea la variable “k” con valor 8. 9. regresa al variable “k” } // 23. Termina la clase X X X X
33. Area de la clase Se crea el registro de activación de la clase main llamado Qk.