Buscar este blog

16 de enero de 2010


Representación de árboles en la computadora.

Suponga que T es un árbol general. A menos que se diga lo contario, T se mantendrá en memoria en términos de una representación enlazada que usa tres arrays paralelos, INFO, HIJO (o BAJO), y una variable puntero RAIZ, tal como sigue. En primer lugar, cada nodo N de T corresponderá a una posición K tal que:

(1)INFO [K] Contiene los datos del nodo N.
(2)HIJO [K]contiene la posición del primer HIJO de N. la condición HIJO[K]=NULO indica que N no tiene hijos.
(3)HERM [K]contiene la posición del siguiente hermano de N. La condición HERM [K]=NULO indica que N es el último hijo de su padre.

Más aun, RAIZ  contendrá la posición de la RAIZ R de T. aunque lo anterior representación puede parecer artificial, tiene la importante ventaja de que cada nodo R de T, independientemente del número de hijos de N, contendrá exactamente tres campos.
    Esta representación se puede extender fácilmente para representar un bosque F formado por árboles T1, T2,……Tm   asumiendo que las raíces de los árboles son hermanas. En este caso, RAIZ contendrá la posición de la raíz R1 del primer árbol T1; o cuando F este vacío, RAIZ será igual a NULO.



INFO
HIJO
HERM
1

1
5

2
A
2
3
0
3
B
3
15
4
4
C
4
6
16
5

5
13

6
G
6
0
7
7
H
7
11
8
8
J
8
0
0
9
N
9
0
0
10
M
10
0
9
11
L
11
0
0
12
K
12
10
0
13

13
0

14
F
14
0
0
15
E
15
0
14
16
D
16
12
0



(a)                                      RAIZ=2 DISP=13

No hay comentarios:

Publicar un comentario