Professional Documents
Culture Documents
RBOLES
B
D E F
p es el padre y m es el hijo D E F
Los hijos de un mismo padre se llaman:
hermanos
Un subrbol de un rbol B
Es cualquier nodo del rbol junto con todos sus
descendientes D E F
Todos los nodos tienen al menos un padre, menos la raz: A
Si no tienen hijos se llaman hoja: D, E, F y C
Definicin
7
Representacin de un rbol.
Mediante diagramas de Venn
a
b c d
e
f
a
b c d
hoja
Nivel de profundidad = 7
Grado de un nodo = 3 9
- ^
A B / 3.5
10
C D
Tipos de rboles (cont.)
rboles de expresin
Representan un orden de ejecucin
+
*
* +
+ -
A B * E
7 12 9
C D
11
Tipos de rboles (cont.)
rboles similares: Los que tienen la misma
estructura (forma)
a
1
b e
2 5
c d f g
3 4 6 7
h i
8 9
14
rboles Binarios de Bsqueda
Un rbol es un ABB si
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.
15
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 90
26 45 110
85
8 34 42 68 88 100 110
95 105
16
102
Conversin de un rbol general en un
rbol binario
Los hermanos se enlazan en forma horizontal (lineal)
Se enlaza en forma vertical el padre con el hijo que
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.
17
Conversin de un rbol general en un
rbol binario (cont.)
A A
B C D
B C D = E F G H I J K
E F G H I J K L M N O
A
L M N O
B
C que da as
E
L F G D
M H
I
N
J
O K 18
Representacin de un rbol binario en
la memoria.
Cada noto tiene la siguiente forma:
A D
B C E
19
Clase nodo de un ABB
Class Nodo{
nodo izq;
nodo der;
int dato;
}
20
Operaciones sobre un rbol
Recorrer rbol
Preorden
Inorden
Postorden
Insercin nodo
Eliminar nodo
Buscar nodo con informacin
Sumar los nodos
Calcular profundidad del rbol
Contar nodos
Contar hojas.
21
Recorridos de un rbol de Bsqueda
Binaria (ABB)
Recorrido en preorden (prefijo)
Visita la raz.
Recorre el subrbol izquierdo. RID
Recorre el subrbol derecho.
A
B C
Preorden = ABDGCEHIF
D E F
G H I 22
Recorridos de un rbol de Bsqueda
Binaria (ABB) (cont.)
Recorrido en inorden (infijo)
Recorre el subrbol izquierdo.
Visita la raz IRD
Recorre el subrbol derecho.
A
B C Inorden: D G B A H E I C F
D E F
G H I 23
Recorridos de un rbol de Bsqueda
Binaria (ABB) (cont.)
Recorrido en postorden (postfijo)
Recorre el subrbol izquierdo.
Recorre el subrbol derecho. IDR
Visita la raz.
A
B C Postorden : G D B H I E F C A
D E F
G H I 24
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.
25
Insercin en un ABB (cont.)
Repetir sucesivamente el paso 1 hasta que se
cumpla alguna de las siguientes condiciones
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.
26
Insercin en un ABB (cont.)
Supngase que quieren insertarse las
siguientes los siguientes datos en un rbol
binario de bsqueda que se encuentra vaci.
27
Insercin en un ABB (cont.) Solucin
120
87 140
43 65 130
I
99
22 56
28
Eliminar un nodo
29
Eliminar un nodo (cont.)
Caso 1
Si el elemento a borrar es terminal (hoja),
simplemente se elimina.
aux = aux.izq = null
Ejemplo eliminar nodo 7
6 6 6
1 1 8 1
8 8
7 9 7 9 9
30
Eliminar un nodo (cont.)
Caso 2
Si el elemento a borrar tiene un solo hijo,
entonces tiene que sustituirlo por el hijo
1 8 1 8 1 9
9 9 31
Eliminar un nodo (cont.)
Caso 3
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 7 7
1 1 8 1 8
8
7 9 9 32
7 9
Eliminar un nodo (cont.)
Elimina el 22,. 99, 87, 120, 140, 135, 56
93
87 120
43 99 140
22 65
130
56 135
33