Archivo, Registros y Claves
R1 R2 R3 Ri Rn
........------------------.......--------.......--------.......
| K1 | K2 | K3 | | Ki | | Kn | n slots Input File
........------------------.......--------.......--------.......
Reglas de ubicacion de padres e hijos en la representacion secuecial de arboles
Np Ni Nl Nr Ni ( Nodo ) i
..........--------............--------.......------------...... Nl ( Nodo hijo left ) 2 * i
| | | | | | | Nr ( Nodo hijo right ) 2 * i + 1
..........--------............--------.......------------...... Np ( Nodo parent ) Piso i / 2
Arbol heap
Padre
+----+
| pa |
+----+ pa > hl
| |
+--------+ +--------+ pa > hr
| |
+----+ +----+ No importan los valores relativos de hl y hr
| hl | | hr |
+----+ +----+
Hijo Isquierdo Hijo Derecho
En el ejemplo pueden observarse como evolucionan los árboles, para
un archivo con 10 registros. En forma generica ( X1, X2, X3, ...., Xn-2, Xn-1, Xn ).
En el ejemplo ( 26, 5, 77, 1, 61, 11, 59, 15, 48, 19 ).
*---* *---* *---*
|X 1| |2 6| |7 7|
*---* *---* *---*
| | | | | |
+--------------+ +--------------+ +--------------+ +--------------+ +--------------+ +--------------+
| | | | | |
*---* *---* *---* *---* *---* *---*
|X 2| |X 3| | 5 | |7 7| |6 1| |5 9|
*---* *---* *---* *---* *---* *---*
| | | | | | | | | | | |
+------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+
| | | | | | | | | | | |
*---* *---* *---* *---* *---* *---* *---* *---* *---* *---* *---* *---*
|X 4| |X 5| |X 6| |X 7| | 1 | |6 1| |1 1| |5 9| |4 8| |1 9| |1 1| |2 6|
*---* *---* *---* *---* *---* *---* *---* *---* *---* *---* *---* *---*
. . . | | | | | |
.... .... .... +--+ +--+ +--+ +--+ +--+ +--+
. . . | | | | | |
*---* *---* *---* *---* *---* *---* *---* *---* *---*
| | | | | | |1 5| |4 8| |1 9| |1 5| | 1 | | 5 |
*---* *---* *---* *---* *---* *---* *---* *---* *---*
X n-2 X n-1 X n
Arbol Completo Arbol Inicial Heap Inicial ( Heap n - 0 ) ( Heap 10 )
*---* *---* *---*
|6 1| |5 9| |4 8|
*---* *---* *---*
| | | | | |
+--------------+ +--------------+ +--------------+ +--------------+ +--------------+ +--------------+
| | | | | |
*---* *---* *---* *---* *---* *---*
|4 8| |5 9| |4 8| |2 6| |1 9| |2 6|
*---* *---* *---* *---* *---* *---*
| | | | | | | | | | | |
+------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+
| | | | | | | | | | | |
*---* *---* *---* *---* *---* *---* *---* *---* *---* *---* *---* *---*
|1 5| |1 9| |1 1| |2 6| |1 5| |1 9| |1 1| | 1 | |1 5| | 5 | |1 1| | 1 |
*---* *---* *---* *---* *---* *---* *---* *---* *---* *---* *---* *---*
| | |
+--+ +--+ +--+
| | |
*---* *---* *---*
| 5 | | 1 | | 5 |
*---* *---* *---*
Heap n - 1 ( Heap 9 ) Heap n - 2 ( Heap 8 ) Heap n - 3 ( Heap 7 )
Clasificados = 77 Clasificados = 61,77 Clasificados = 59, 61, 77
*---* *---* *---*
|2 6| |1 9| |1 5|
*---* *---* *---*
| | | | | |
+--------------+ +--------------+ +--------------+ +--------------+ +--------------+ +--------------+
| | | | | |
*---* *---* *---* *---* *---* *---*
|1 9| |1 1| |1 5| |1 1| | 5 | |1 1|
*---* *---* *---* *---* *---* *---*
| | | | | |
+------+ +------+ +------+ +------+ +------+ +------+
| | | | | |
*---* *---* *---* *---* *---* *---*
|1 5| | 5 | | 1 | | 1 | | 5 | | 1 |
*---* *---* *---* *---* *---* *---*
Heap n - 4 ( Heap 6 ) Heap n - 5 ( Heap 5 ) Heap n - 6 ( Heap 4 )
Clasificados = 48, 59, 61, 77 Clasificados = 26, 48, 59, 61, 77 Clasificados = 19, 26, 48, 59, 61, 77
*---* *---* *---*
|1 1| | 5 | | 1 |
*---* *---* *---*
| | |
+--------------+ +--------------+ +--------------+
| | |
*---* *---* *---*
| 5 | | 1 | | 1 |
*---* *---* *---*
Heap n - 7 ( Heap 3 ) Heap n - 8 ( Heap 2 ) Heap n - 9 ( Heap 1 )
Clasificados = 15, 19, 26, 48, 59, 61, 77 Clasificados = 11, 15, 19, 26, 48, 59, 61, 77 Clasificados = 5, 11, 15, 19, 26, 48, 59, 61, 77
Heap n - 10 ( Heap 0 )
Clasificados = 1, 5, 11, 15, 19, 26, 48, 59, 61, 77
El parámetro i es la posición del primer nodo del árbol.
El parámetro n es la posición del último nodo del árbol.
El parámetro R es un archivo con registros R1, R2, ..., Rn.
El parámetro n es la cnatidad de registro del archivo R.
piso de n/2
+----------------------------+
| |
V |
R1 R2 R3 Ri-1 Ri Ri+1 Rn-2 Rn-1 Rn
........------------------.......------------------.......------------------.......
| | | | | | | | | | | | n slots Input File
........------------------.......------------------.......------------------.......
Ajusto ............u................>
Ajusto ..................................>
Ajusto .................................................>
Ajusto ......................................................>
Ajusto ...........................................................>
n-1
+---+
| |
V |
R1 R2 R3 Ri-1 Ri Ri+1 Rn-2 Rn-1 Rn
........------------------.......------------------.......------------------.......
| | | | | | | | | | | | n slots Input File
........------------------.......------------------.......------------------.......
Ajusto ...........................................................>
Ajusto ......................................................>
Ajusto .................................................>
Ajusto .........>
Ajusto ....>