Professional Documents
Culture Documents
Hermes Mosquera
Julio de 2013
Contenido
1. RBOLES
Introduccin
Los rboles a diferencia de las listas son una estructura de datos de no lineal,
atendiendo a una estructura de tipo jerrquico. Se abordan los temas relacionados
con los conceptos bsicos de rboles, incluyendo la teora general de rboles e
identificando los diferentes tipos de rboles.
Se presenta la teora general de los arboles binarios,
bsqueda, sus formas de recorridos.
y rboles binarios de
Fuente: http://www.conclase.net/c/edd/index.php?cap=006b
Los algoritmos de insercin y borrado dependen en gran medida del tipo de rbol
que se est implementando, de modo que por ahora se dejarn a un lado y se
centrar la atencin en el modo de recorrer los rboles.
rboles 2-3: son rboles de orden 3, que contienen dos claves en cada nodo y
que estn tambin equilibrados. Tambin generan secuencias ordenadas al
recorrerlos en inorden.
rboles-B: caso general de rboles 2-3, que para un orden M, contienen M-1
claves1.
http://www.conclase.net/c/edd/index.php?cap=006b.
La raz de este rbol es A y el rbol izquierdo est conformado por dos rboles.
Uno de raz B tal como se muestra en la figura 4. Y el otro de raz I tal como se
muestra en la figura 5.
Los dos subrboles tienen a su vez dos subrboles cada uno, donde C y F son la
races de los arboles del sub rbol izquierdo. Mientras que las races de los
subrboles del subrbol derecho son J y M respectivamente, tal como se visualiza
en la figura 3.
10
El nodo C es una hoja mientras que el nodo B no se puede considerar como hoja
porque tiene una ramificacin por la derecha. El nodo D tambin es una hoja.
Nodo no terminal: Un nodo no terminal es aquel que posee por lo menos una
ramificacin. En el ejemplo anterior, el nodo A o el nodo B son nodos no
terminales, mientras el nodo D o el nodo C son nodos terminales.
Camino: Un rbol siempre se examina de arriba hacia abajo. Por Ejemplo:
Figura 8. Camino del rbol
12
13
14
Obsrvese que todos los nodos no terminales tienen sus dos hijos. El mximo
nmero de nodos que puede tener un rbol de nivel n puede representarse con la
siguiente ecuacin matemtica:
2+2+2+2...+2n
Si n es 3 entonces:
2+2+2+2 = 15
El rbol de la figura 66, es un rbol binario completo de nivel 3, donde el nmero
mximo de nodos es 15 tal como lo indica la frmula matemtica.
rbol binario Igual: Dos rboles son iguales si los dos son vacos. Existe otro caso
en el cual dos rboles son iguales:
Estos rboles son iguales porque sus races son iguales y tambin lo son su
respectivo rbol izquierdo y derecho. Para que un rbol sea igual a otro, es
necesario que el contenido de cada uno de sus respectivos nodos sea el mismo y
que tengan las mismas relaciones de parentesco.
2.3.2 rbol Binario Semejante: Dos rboles binarios son semejantes si tienen el
mismo nmero de nodos y los valores de los nodos del primer rbol son los
mismos que los valores de los nodos del segundo, sin importar la relacin de
parentesco entre ellos. Por ejemplo:
15
Estos rboles son semejantes. Contienen los mismos valores en cada uno de sus
nodos.
2.3.3 rbol Binario Isomorfo: Dos rboles binarios son isomorfos si tienen la
misma estructura aunque el contenido de cada uno de sus nodos sea diferente.
Por ejemplo los siguientes rboles son isomorfos.
Otro ejemplo de recorrido en preorden, donde sus nodos son de tipo numrico
para el siguiente rbol binario de la figura 16.
Figura 16. Resultado del recorrido en preorden del rbol
El resultado completo del recorrido en Inorden para el rbol de la figura 17 es:3 5 - 7 - 10 - 11 - 12 15 Tal como se muestra en la figura.
18
Por ltimo solo queda describir la tercera forma de recorrer un rbol binario.
2.4.3 Recorrido en Postorden
Recorrer un rbol en Postorden consiste en primer lugar en recorrer el subrbol
izquierdo en Postorden, luego serecorre el subrbol derecho en Postorden y
finalmente se visita el nodo raz. Esto significa que para cada subrbol se debe
conservar el recorrido en Postorden, es decir, primero se visita la parte izquierda,
luego la parte derecha y por ltimo la raz.
He aqu la aplicacin con un ejemplo basado en el rbol de la figura 17:
Manos a la obra
El recorrido inicia con el subrbol izquierdo, el primer nodo a visitar es el 3 luego
se visita el 7 y posteriormente el 5 que es la raz, con esto se garantiza que el
recorrido del subrbol izquierdo se hizo en Postorden.
19
20
/
2
3
/
2
7
\
4
Sexto nmero: 8 (8 es mayor que 5 y mayor que 7) en este caso se ingresa al lado
derecho de 7.
22
\
7
\
4
Sptimo nmero: 9 (9 es mayor que 5, es mayor que 7 y es mayor que 8)en este
caso se ingresa al lado derecho del nmero 8 formando de esta manera el rbol
binario de bsqueda.
5
/
3
/ \
2
4
\
7
\
8
\
9
23
Fuente: http://www.conclase.net/c/edd/index.php?cap=007
Fuente: http://www.conclase.net/c/edd/index.php?cap=007
1. Se localiza el nodo a borrar ('raz').
2. Se busca el nodo ms a la izquierda del rbol derecho de 'raz', en este
caso el 12, ya que el rbol derecho no tiene nodos a su izquierda, si se
opta por la rama izquierda, se estar en un caso anlogo. Al mismo
tiempo que se mantiene un puntero a 'Padre' a 'nodo'.
3. Se intercambia los elementos 6 y 12.
4. Ahora se tiene que repetir el bucle para el nodo 6 de nuevo, ya que no
es posible eliminarlo.
Figura 22. Borrado de un nodo rama con intercambio de nodo rama
Fuente: http://www.conclase.net/c/edd/index.php?cap=007
Fuente: http://www.conclase.net/c/edd/index.php?cap=007
/*PROTOTIPOS*/
26
42
La configuracin del modo grafico para C++ depende del compilador, cada uno
tiene sus propias caractersticas, por ejemplo para este caso he utilizado el
compilador Borland C++ 5.5, entre tantas versiones que hay disponibles y son de
fcil manejo y algo adicional que es de libre uso y ya viene configurado siempre y
cuando la descarga la realice del sitio disponible en la caja de herramientas del
curso
ubicada
en
el
entorno
de
conocimiento.
https://www.dropbox.com/home/Public/Compiladores%20para%20C%2B%2B
43
Progra4.cpp
#include <graphics.h> // Encabezado con declaraciones de grficos
44
45
Librera
graphics.h
libbgi.a
http://www.cs.colorado.edu/~main/bgi/dev-c++/graphics.h
http://www.cs.colorado.edu/~main/bgi/dev-c++/libbgi.a
Nota: La ruta para copiar la descarga es la ruta por defecto donde se instala Dev
C++. Si en el momento de la instalacin usted cambi esa ruta, deber copiar las
libreras en la ruta que usted indic, dentro de los directorios INCLUDE y LIB
respectivamente.
46
47
48
49
50
Fuentes Bibliogrficas
51