Upload
pamela-vasquez-costales
View
227
Download
0
Embed Size (px)
Citation preview
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
1/87
FACULTAD DE INGENIERA
ESCUELA DE INGENIERA ENSISTEMAS Y COMPUTACIN
ESTRUCTURA DE DATOS
Pamela Vsquez Costales
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
2/87
UNIDAD III
CAPTULO 9
ESTRUCTURASJERRQUICAS Y
RBOLES BINARIOS DEBSQUEDA
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
3/87
ESTRUCTURAS JERRQUICAS
Y RBOLES BINARIOS DEBSQUEDA
Objetivos
O Definir las caractersticas de las
estructuras de datos jerrquicas.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
4/87
Objetivos
O Describir la terminologa de lasestructuras de datos tipo rbol: nodoraz, nodo hijo, nodo padre,ancestros, descendientes, nodo hoja,sub-rbol, altura y niveles.
O Describir el diseo lgico del TDA
rbol binario de bsqueda (ABB),incluyendo las operaciones debsqueda, insercin y eliminacin deun elemento.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
5/87
Objetivos
O Implantar el TDA ABB,comprendiendo el movimiento del
apuntador en la ruta de bsqueda.O Describir la forma en que se realizan
los recorridos sobre un rbol binario.O Distinguir las ventajas de aplicar la
recursividad en la implementacin derutinas relacionadas con rbolesbinarios.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
6/87
Qu es una estructura jerrquica?
La organizacin de los datos en unaestructura en forma jerrquica ode
niveles, es una nueva opcin pararepresentar estructuras de datos,
comnmente denominada rboles. Sucaracterstica principal es que
mantienen una relacin de uno amuchos (1:n) entre sus elementos.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
7/87
Estructura Jerrquica o rbol
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
8/87
Terminologa bsica en las
estructuras jerrquicas o rboles
O Nodo raz: es el primer elemento deun rbol binario; un rbol binario slotiene un nodo raz.
O Nodo padre: son los nodos quetienen al menos un hijo (derecho y/o
izquierdo).O Hijo derecho: nodo que se encuentra
al lado derecho de otro nodo.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
9/87
O Hijo izquierdo: nodo que est al
lado izquierdo de otro nodo.O Nodo hoja: nodos que no tienen
hijos. (Un nodo de un rbol binariopuede tener ninguno, uno o dos
hijos.)O Nodo hermano: nodos que tienen un
mismo padre.
OAncestros: nodo padre de un nodo oel padre de algn nodo ancestro. (Elnodo raz es un ancestro de todos losnodos del rbol.)
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
10/87
O Nodo descendiente: el hijo de unnodo o el hijo de otro descendiente deese nodo. (Todos los nodos del rbolson descendientes del nodo raz.)
O Subrbol izquierdo: todos losdescendientes por la izquierda de unnodo forman un subrbol izquierdo,cuya raz es el hijo izquierdo de ese
nodo.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
11/87
O Subrbol derecho: todos losdescendientes por la derecha de unnodo forman un subrbol derecho,cuya raz es el hijo derecho de ese
nodo.O Nivel de un nodo: distancia desde la
miz. La raz est en el nivel cero.Cantidad de nodos por los que se
tiene que pasar para llegar a un nodo.(El nmero mximo de nodos en elnivel n es 2n.)
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
12/87
O Subrbol derecho: todos losdescendientes por la derecha de unnodo forman un subrbol derecho,cuya raz es el hijo derecho de ese
nodo.O Nivel de un nodo: distancia desde la
miz. La raz est en el nivel cero.Cantidad de nodos por los que se
tiene que pasar para llegar a un nodo.(El nmero mximo de nodos en elnivel n es 2n.)
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
13/87
Ejemplo de los elementos de un rbolBinario
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
14/87
Cmo se relaciona el problema dela bsqueda con los rboles?
Si se recuerda, en el captulo anterior
se concluy que la manera mseficiente de realizar una bsqueda en
una estructura lineal es con elalgoritmo de la bsqueda binariaaplicado en una tabla de memoria
esttica.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
15/87
Sin embargo, esta estructurapresentaba la desventaja de no ser
eficiente para la insercin y eliminacinde elementos. Por otro lado, una lista
encadenada ordenada tena un mejorcomportamiento en las inserciones ylas bajas de elementos, pero no en el
algoritmo de la bsqueda binaria.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
16/87
Ante esta disyuntiva, contar con lasestructuras jerrquicas (rboles)
representa una opcin para conjuntarlas caractersticas positivas de estas
estructuras lineales La propuesta es elTDA rbol Binario de Bsqueda, que sedescribe a continuacin.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
17/87
Qu es un rbol Binario deBsqueda (ABB)?
Un ABB es una estructura de datos que
guarda informacin no repetida paraadministrar eficientemente la bsqueda
de los propios datos.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
18/87
Pertenece al conjunto de estructurasjerrquicas, restringiendo la relacin
de uno a dos como mximo ycumpliendo con un ordenamiento de tal
forma que, para cada elemento delABB, los elementos menores estarn asu izquierda y los mayores a suderecha como indica la siguiente
figura:
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
19/87
Ejemplo de rboles
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
20/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
21/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
22/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
23/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
24/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
25/87
Cmo se realiza la bsqueda enun ABB?
La idea bsica del algoritmo debsqueda consiste en comparar la
informacin del nodo con la del valorbuscado; si no son iguales, elapuntador de bsqueda se mueve a la
izquierda o a la derecha del valor
buscado, segn sea menor o mayor,comenzando por la raz y hasta que se
encuentre o no el valor.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
26/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
27/87
O Verifique si la informacin del nodo sealado
por el apuntador auxiliar es mayor, menor o
igual al nodo buscado.
O Si es mayor, mueva el apuntador auxiliar al
nodo hijo derecho; si es menor, mueva elapuntador auxiliar al nodo hijo izquierdo. Si
son iguales, ha encontrado el nodo y el
apuntador auxiliar lo seala la siguiente
figura:
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
28/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
29/87
Por qu es eficiente la bsqueda en
un ABB?
El ABB es una consecuencia directa delalgoritmo de bsqueda binaria sobreuna estructura lineal y, por lo tanto,tiene todos sus beneficios. Si un ABBtiene distribuidos sus elementos en
forma balanceada, se obtendr elmayor beneficio, pues se haran lasmismas comparaciones que en unabsqueda binaria sobre un arreglo.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
30/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
31/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
32/87
Insercin de un elemento en un ABB:
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
33/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
34/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
35/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
36/87
O Al salir del ciclo el apuntador auxiliar 2
sealar vaco, pero el apuntador auxiliar 3estar en el nodo que ser el padre del
nuevo.
4. Verifique si el apuntador auxiliar 3 es vaco,
en cuyo caso, el nuevo nodo ser el primeroen el rbol y el apuntador raz tendr que
sealarlo.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
37/87
Si el apuntador auxiliar 3 no es vaco,
entonces estar sealando al padre delnuevo nodo. Se debe verificar si lainformacin del nuevo nodo es menor a
la del marcado por el apuntador
auxiliar 3, en cuyo caso deberencadenarse el nuevo nodo como un
hijo izquierdo del sealado por elapuntador auxiliar 3. Si la informacinno es menor, entonces ser mayor ytendr que encadenarse como hijo
derecho.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
38/87
Cmo se realiza la eliminacin de
un elemento en un ABB?
La accin de borrar un nodo puedeenfrentarse con alguno de los
siguientes casos:
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
39/87
1. El nodo que se va a borrar es una
hoja. Puesto que no tiene hijos, sunodo padre apuntar ahora a vaco.Eliminacin de un nodo hoja: seelimina el 8.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
40/87
2. El nodo por borrar tiene slo un hijo. Eneste caso, el padre del que se va a borrarpuede apuntar directamente al nodo hijodel que se eliminar. Eliminacin de unnodo con un hijo: se elimina el 21.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
41/87
3. El nodo por borrar tiene dos hijos.
Puesto que el padre del que se va aeliminar no puede heredar dosapuntadores, se busca un valor sus-tituto del valor por borrar y el nodo no
se borra fsicamente.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
42/87
Se puede escoger como sustituto al
predecesor del que se eliminar (elvalor mayor de todos los valoresmenores; o bien, de los nodos delsubrbol izquierdo el de ms a la
derecha), y se elimina fsicamente elnodo donde se encuentre como indicala siguiente figura:
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
43/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
44/87
Se puede asegurar que la baja fsica
del nodo sustituto cae en alguno de losdos primeros casos. De igual manera,se puede considerar al sucesor comovalor sustituto.
El algoritmo de esta operacin estcompuesto de dos partes. La primerase encarga de localizar el nodo porborrar yla segunda borra el nodoencontrado.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
45/87
Primera parte (localizar el nodo por
borrar)1. Se coloca un apuntador auxiliar 1 enla raz del rbol y un apuntador auxiliar2 en vaco. El apuntador auxiliar 2
siempre sealar al nodo padre del queseala el apuntador auxiliar 1.2. Mientras no se haya encontrado el
nodo por borrar:
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
46/87
O Se verifica si la informacin del nodo
sealado por el apuntador auxiliar 1es la que se desea borrar, en caso deque no sea: a) se coloca el apuntador
auxiliar 2 en el nodo que seala el
apuntador auxiliar 1 y b) se mueve elapuntador auxiliar 1 al nodo hijo iz-quierdo si la informacin que se va aborrar es menor a la informacin del
nodo que seala el apuntador auxiliar1; en caso contrario, debe moverse a
la derecha.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
47/87
O Al salir del ciclo, el apuntador auxiliar
1 estar sealando al nodo por borrary el apuntador auxiliar 2 al nodopadre.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
48/87
Segunda parte (eliminar el nodo
correspondiente)1. Se coloca un apuntador temporal enel nodo que debe borrar.2. Se verifica si el nodo por borrar eshoja o tiene slo un hijo, en cuyo casose desencadenar del rbol para darlode baja.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
49/87
Nodo hoja: Si el nodo apuntado por el
auxiliar 1 no tiene hijo izquierdo niderecho, debe modificarse el apuntadorque lo conecta con su padre (a travsdel auxiliar 2) de tal forma que apunte
hacia vaco. Nodo con un hijo derecho:si el nodo tiene hijo izquierdo, pero sderecho, se modifica el apuntador quelo conecta con su padre (a travs del
auxiliar 2) de tal forma que seale alhijo derecho.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
50/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
51/87
O Se coloca el apuntador temporal en el
hijo izquierdo del nodo sealado porel apuntador auxiliar1.O Se mueve el apuntador temporal
hacia la derecha lo ms posible, es
decir, justo en el nodo antes de que elmovimiento a la derecha lo saque delrbol. El nodo al que se llegue ser elnodo sustituto y se puede asegurarque es nodo hoja o que tiene slo unhijo izquierdo.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
52/87
O Se copia la informacin del nodo
sustituto en el marcado por el apuntadorauxiliar1.O Se desencadena el nodo sealado por el
apuntador temporal de la misma forma
en que se hace para un nodo hoja o unocon hijo izquierdo. En este caso, para elmovimiento de apuntadores, se tendrque evaluar si el nodo marcado por el
apuntador temporal es la raz delsubrbol izquierdo del nodo sealado porel apuntador auxiliar 1 o es de un nivelinferior.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
53/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
54/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
55/87
La mejor representacin para un ABB
ser utilizando memoria dinmicaobteniendo as sus beneficios, pues elalgoritmo de bsqueda binaria pierdesu eficiencia si se trata de aplicar en
una lista encadenada ordenada.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
56/87
Qu desventajas tiene un ABB?
La principal desventaja de un ABB es laforma en que se realizan las
inserciones y eliminaciones deelementos. El orden de insercin y eli-minacin determina la forma en que se
balancea el rbol y, por lo tanto,
repercute en las bsquedasposteriores.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
57/87
En el peor de los casos, un ABB puede
degenerar en una lista sobre la que seaplicar una bsqueda secuencial. Sepuede hacer la prueba insertando en elrbol vaco una secuencia ordenada de
datos y comprobando que el rbol quese forma es uno en que slo seencadenan los nodos por medio de unslo apuntador y se degenera en una
lista.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
58/87
Obviamente en este caso el algoritmo
de bsqueda en el ABB se comportarcomo una bsqueda secuencial Laforma de atacar este problema se
analizar en captulos posteriores al
conocer otras estructuras.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
59/87
Qu aplicaciones tiene un ABB?
Un ABB ser til en cualquier aplicacinen la que se requiera administrar un
grupo ordenado de datos en memoria
principal con el objetivo bsico debuscar de manera eficiente cualquierdato. Se recomienda que la aplicacintenga al grupo de datos bien definido
desde un principio y que no requiera demuchas altas y bajas para mantener el
rbol lo ms balanceado posible.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
60/87
Qu Cmo se puede representarfsicamente un ABB?
La forma de representar un ABB estobligada a utilizar ligas, ya sea en
memoria dinmica (preferentemente) o
esttica.La base de esta representacin estaren un nodo que contenga la
informacin y los apuntadores a los
subrboles izquierdo y derecho.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
61/87
El ABB estar controlado mediante unapuntador principal al nodo raz del
rbol como indica la figura:
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
62/87
Representacin de un ABB en memoria,con nodos que contienen apuntadores a
sus hijos izquierdos y derechos. Elcontrol del rbol est en el apuntador
principal raz.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
63/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
64/87
Declaracin de tipos para un ABBen lenguaje C++:
class NodoArbol
{public:
tipoinfo info;
NodoArbol *izq, *der;
NodoArbol() {izq=der=NULL;}
NodoArbol(tipoinfo dato)
{info=dato; izq=der=NULL;
};
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
65/87
Declaracin de tipos para un ABBen lenguaje C++:
class ABB
{private:
NodoArbol *raiz;
public:
ABB() {raiz=NULL;}
~ABB() //se requiere un destructor
//otros mtodos...
};
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
66/87
De qu manera se implementanlas operaciones y/o aplicaciones
sobre rboles binarios?
La implementacin de las operaciones
sobre rboles binarios requiereobservar previamente qu tipo desolucin conviene.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
67/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
68/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
69/87
Algoritmo iterativo de la bsqueda
NodoABB *p=raiz;
while (p!=NULL)
if(p->info == valor)return(p);
elsep=(p->info > valor? p->izq: p->der);
}return(NULL);
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
70/87
Algoritmo iterativo de la insercinNodoABB *NuevoNodo = new Nodo Arbol (valor);
NodoABB *actual = raiz, *anterior = NULL;
While (actual !=NULL){ anterior=actual;actual=(actual->info>valor? actual->izq:
actual->der);}if(anterior==NULL)raiz=NuevoNodo;
elseif(anterior->info > valor)
anterior->izq=NuevoNodo;else
anterior->der=NuevoNodo;
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
71/87
Rutina recursiva para desplegar lainformacin de un rbol binariovoid despliega ( NodoABB* raiz)
{
if(raiz!=NULL)
{cout Raiz->info;
despliega( Raiz->izq );
despliega Raiz->der);}
}
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
72/87
cout Raiz->info;
despliega( Raiz->izq );
despliega Raiz->der);
El orden de estas instruccionesdetermina el tipo de recorrido en el
rbol
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
73/87
En qu consisten los recorridos enun rbol binario?
La accin de recorrer una estructura dedatos es muy importante, pues permitehacer algo en todos los elementos de la
estructura (por ejemplo, desplegarlosen pantalla). Esto es simple en unaestructura lineal, pues slo se recorre
desde el principio hasta el final. Pero en
una estructura jerrquica como losrboles binarios, hay diferentes formasde realizar estos recorridos.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
74/87
Los algoritmos de los recorridos de unrbol binario se pueden plantear
recesivamente de la siguiente forma(se entiende que "visitar" es la accin
por aplicar al nodo durante el
recorrido). Asimismo, se observa queun recorrido se aplica sobre cualquierrbol binario, sin importar si es o no de
bsqueda como indica la figura:
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
75/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
76/87
Preorden: til para reconstruir un ABB1. Visite el nodo raz del rbol.2. Recorra en preorden el subrbol
izquierdo del nodo raz.3. Recorra en preorden el subrbol
derecho del nodo raz.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
77/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
78/87
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
79/87
Adems de estos recorridostradicionales, se tienen los recorridos
conversos, en los que el orden derecorrido se invierte a derecha-iz-
quierda, en vez de izquierda-derecha.
Finalmente, existe un recorrido llamadonivel por nivel, en el que los nodos delrbol se visitan por niveles a partir del
0, y de izquierda a derecha. Este
algoritmo puede plantearseiterativamente, utilizando una fila de lasiguiente manera:
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
80/87
1. Inserte el apuntador al nodo raz auna fila.
2. Mientras la fila no se vace:
O Saque el apuntador de la fila y
procese el nodo sealado.O Inserte en la fila los apuntadores de
los hijos del nodo procesado (si stos
existen).
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
81/87
Ejemplo:
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
82/87
EJERCICIOS CAPTULO VIII
1. Dado el siguiente rbol binario de bsquedacodificado (cada smbolo de un nodo
corresponde a un valor numrico), respondacada uno de los siguientes incisos:
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
83/87
a) Qu smbolo representa el valor numrico
ms grande en el rbol?
b) Qu smbolo representa el valor numrico
ms pequeo en el rbol?
c) Qu smbolo representa el valor medio enel rbol?
d) Cules son los ancestros del nodo que
contiene el smbolo "?"?
e) Cuntas comparaciones se requerirn para
encontrar el smbolo & en el rbol?
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
84/87
f) Cuntos nodos como mximo podran
existir en el rbol si su altura fuera igual a 4?
g) g) Cul es el smbolo cuyo valor numrico
asociado es inmediata
mente mayor al valor numrico del smbolo =
?
h) h) Si el embolo % representa la suma de los
valores asociados a los smbolos $ y /,
muestre con un dibujo cmo quedara elrbol al insertar el smbolo %.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
85/87
2. Para cada uno de los siguientes incisos,
dados los recorridos, construya el rbol binariocorrespondiente:
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
86/87
3. Qu tipo de recorrido sobre un rbol
binario realiza la siguiente funcin?Nota: suponga que la clase pila estparametrizada y que se implementa
segn las necesidades de estaaplicacin.
7/23/2019 Cap IX, ESTRUCTURAS JERARQUICAS Y ARBOLES BINARIOS DE BUSQUEDA.pdf
87/87