Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Definicin
Un rbol dirigido es una estructura: Jerrquica porque los componentes estn a distinto nivel. Organizada porque importa la forma en que est dispuesto el contenido. inmica porque su forma, tamao y contenido pueden variar durante la ejecucin. Un rbol puede ser: vaco, Una raz + subrboles.
2
Representacin de un rbol.
Mediante diagramas de Venn
a b e f
a
( a ( b (e,f), c, d ) )
3
Conceptos Bsicos
Si hay un camino de A hasta B, se dice que A es
antecesor de B, y que B es sucesor de A. Padre es el antecesor inmediato de un nodo Hijo, cualquiera de sus desc}ientes inmediatos. escendiente de un nodo, es cualquier sucesor de dicho nodo. Hermano de un nodo, es otro nodo con el mismo padre. Generacin, es un conjunto de nodos con la misma profundidad.
4
padre). Hoja es el nodo que no tiene sucesores (sin hijos) (Terminal). Los que tienen predecesor y sucesor se llaman nodos interiores. Rama es cualquier camino del rbol. Bosque es un conjunto de rboles desconectados. Nivel o profundidad de un nodo, es la longitud del camino desde la raz hasta ese nodo. El nivel puede de}irse como 0 para la raz y nivel (predecesor)+1 para los dems nodos.
5
mismo nivel. Grado de un nodo, es el nmero de flechas que salen de ese nodo (hijos). El nmero de las que entran siempre es uno. Grado de un rbol, es el mayor grado que puede hallarse en sus nodos. Longitud del camino entre 2 nodos: es el nmero de arcos que hay entre ellos.
6
Subrbol
hoja
Tipos de rboles
Un rbol ordenado: Es aquel en el que las ramas de los nodos estn ordenadas. Los de grado 2 se llaman rboles binarios. Cada rbol binario tiene un subrbol izquierda y subrbol derecha.
+
A B C
/
^ 3.5 D
8
*
+
*
A B C
*
D
12
9 -171
(A* B) + C * D + E
(7 + 12) * (-9)
estructura (forma)
1 2 3
4
a b
7
e
d
6
8 9
f
h i
sus nodos contienen la misma informacin. rboles n-ario: Es un rbol ordenado cuyos nodos tiene N subrboles, y donde cualquier nmero de subrboles puede ser rboles vacos
10
Nmero de nodos en un rbol binario completo = 2h 1 (en el ejemplo h = 4, 15) esto nos
ayuda a calcular el nivel de rbol necesario para almacenar los datos de una aplicacin.
11
12
ste es binario y sus nodos son subrboles de bsqueda binarios y contienen informacin ordenada de tal que todos los elementos a la izquierda de la raz son menores a la raz y todos lo elementos a la derecha de la raz son mayores a la raz.
13
Caractersticas de un ABB
Todos los nodos a la izquierda son menores
al padre. Todos los nodos a la derecha son mayores al padre. Y solo pueden tener 2 hijos a lo mucho.
50 40 26 8 34 42 45 68 85 88 95 102 100 105
14
90 110 110
se encuentra mas a la izquierda y se elimina el enlace de este padre con los dems hijos. Se rota el diagrama resultante 45 grados hacia la izquierda.
15
=
J O K
B E L F
C G M N
D H I J O K
E L
F M
H N
A B E L F G M N O C que da as D H I J K
16
Raz R A B
E
17
18
RID
Preorden =
D E F
ABDGCEHIF
20
IRD
Inorden: D G B A H E I C F
F
22
23
IDR
Postorden : G D B H I E F C A
F
24
25
Insercin en un ABB
La insercin es una operacin que se puede
realizar eficientemente en un rbol binario de bsqueda. La estructura crece conforme se inserten elementos al rbol. Los pasos que deben realizarse para insertar un elemento a un ABB son los siguientes:
Debe compararse el valor o dato a insertar con la raz del rbol. Si es mayor, debe avanzarse hacia el subrbol derecho. Si es menor, debe avanzarse hacia el subrbol izquierdo.
26
El subrbol derecho es igual a vaci, o el subrbol izquierdo es igual a vaci; en cuyo caso se proceder a insertar el elemento en el lugar que le corresponde. El valor o dato que quiere insertarse es igual a la raz del rbol; en cuyo caso no se realiza la insercin.
27
Regresar a INSERCION1 con NODO.IZQ e INFOR sino si ( INFOR > NODO.INFO) Regresar a INSERCION1 con NODO.DER e INFOR sino Escribir El nodo ya se encuentra en el rbol
} // } si
else CREA (OTRO) {Crear un nuevo nodo} Hacer OTRO.IZQ = null, OTRO.DER = null, OTRO.INFO = INFOR y NODO = OTRO }
28
siguientes los siguientes datos en un rbol binario de bsqueda que se encuentra vaci. 120 87 43 65 140 99 130 22 56
29
87
140
43
65 I 99
130
22
56
30
Eliminar un nodo
Si el elemento a borrar es Terminal (hoja), Si el elemento a borrar tiene un solo hijo, Si el elemento a borrar tiene los dos hijo,
31
6 1 7 8 9 1
6 8 7 9 1
6 8 9
32
Si el elemento a borrar tiene un solo hijo, entonces tiene que sustituirlo por el hijo
7 1 8 9 1
7 8 9 1
7 9
33
Si el elemento a borrar tiene los dos hijos, entonces se tienen que sustituir por el nodo que se encuentra mas a la izquierda en el subrbol derecho, o por el nodo que se encuentra mas a la derecha en el subrbol izquierdo.
Ejemplo: eliminar el 6
6 1 7 8 9 1
7 8 7 9 1
7 8 9 34
35
37
38
Contar nodos
//cuenta los nodos que hay en el rbol public static int nodo (nodo raiz){ if (raiz == null) return 0; else return (1+ Nodo( raiz.der) + Nodo( raiz.izq)) }
39
Contar hojas.
// Cuenta hojas de un rbol public int contarHojas (Nodo raiz) { if (raiz = = null) return 0; If ((raiz.der == null) && (raiz.izq == null)) Return 1; else return contarHojas (raiz.izq) + contarHojas (raiz.der) }
42