Beruflich Dokumente
Kultur Dokumente
Administracin
Sistemas computacionales administrativos
Anlisis de Algoritmos
Dra. ALMA DELIA OTERO ESCOBAR
TEMA:
RBOLES
INTEGRANTES:
JIMNEZ GARCA CECILIA
JIMNEZ VALENCIA ALAN JESUS
BRIONES LIBREROS MICHELLE SEBASTIAN
HERNANDEZ HERNANDEZ ANA ISABEL
HERNANDEZ CALLEJAS GLORIA XIMENA
PERIODO ESCOLAR:
FEBRERO-JULIO 2017
NDICE
INTRODUCCIN .................................................................................................... 3
DESARROLLO DEL TEMA ..................................................................................... 4
RBOLES ............................................................................................................ 4
ARBOLES ENRAIZADOS .................................................................................... 5
SUBRBOL ......................................................................................................... 5
RBOL ORDENADO ........................................................................................... 6
ARBOLES ISOMORFOS ..................................................................................... 6
RBOL BINARIO ................................................................................................. 6
RECORRIDO DE RBOLES ............................................................................ 7
BSQUEDA...................................................................................................... 9
INSERCIN .................................................................................................... 10
BORRADO ...................................................................................................... 10
EJEMPLO DE ALGORITMO EN JAVA ................................................................. 11
CONCLUSIONES.................................................................................................. 16
BIBLIOGRAFIAS ................................................................................................... 16
Pgina 2 de 16
INTRODUCCIN
En el siguiente contenido abordaremos el tema de rboles los cuales nos sirve para
organizar datos y poder facilitar su manipulacin, una de las grandes ventajas que
tiene esta estructura es la bsqueda, ya que la informacin que entra se va
ordenando en el grafo.
Como definicin tenemos que un rbol es un grafo el cual est compuesto por
nodos, sin embargo, estos nodos solo pueden tener un mximo de dos hijos (hojas).
Veremos que la estructura de un rbol es no-lineal y este a su vez es recursivo.
Tambin veremos los tipos de rboles que existen, como lo son, isomorfos,
enraizados, binarios, los subrboles. Y cual es a forma para recorrerlos.
Pgina 3 de 16
DESARROLLO DEL TEMA
RBOLES
Villalpando y Garca (2013) sealan que Un rbol es cualquier grafo no dirigido
conexo que no contiene circuitos (p.242).
Pgina 4 de 16
ARBOLES ENRAIZADOS
Un rbol dirigido es un rbol enraizado si existe
exactamente un vrtice cuya valencia de entrada sea 0
y las valencias de entrada de los otros vrtices sea 1. El
vrtice con valencia de entrada 0 es llamado raz del
rbol enraizado. Los vrtices cuya valencia de salida es
cero se denomina hoja o nodo terminal, en tanto un
vrtice cuya valencia de salida es diferente de cero se
denomina rama o nodo rama o nodo interno.
En la figura 3 Los nodos a, b, c, f, h son nodos rama y
los nodos d, e, g, i, j, k, l son nodos hoja. Figura 3. rboles enraizados
SUBRBOL
Sea a un nodo rama en un rbol T. Por el subrbol con
raz a entendemos el subgrafo T= (V, E) de T tal que V
contiene a a y a todas sus descendientes y E contiene las
aristas de todos los paseos dirigidos que surjan de a. Por
un subrbol de a entendemos un subrbol que tiene a a
como raz.
Figura 4. Subrboles
Pgina 5 de 16
RBOL ORDENADO
Un rbol ordenado es un rbol enraizado con las
aristas incidentes de cada nodo rama, etiquetadas con
los enteros 1, 2, ..., i, ... por lo tanto, los subrboles de
un nodo rama pueden ser referidos como el primero,
el segundo, ..., y el i-simo subrboles del nodo rama
y corresponden a las aristas incidentes desde el nodo,
que pueden se enteros no consecutivos .
Figura 6. rbol ordenado
ARBOLES ISOMORFOS
Se dice que dos rboles ordenados son isomorfos
si existe una correspondencia uno a uno entre sus
vrtices y sus aristas, la cual conserva la relacin
de correspondencia, y si las etiquetas de las aristas
correspondientes coinciden. As los rboles
Figura 7. rboles isomorfos ordenados i) y ii) no son isomorfos.
Se definir el rbol con una clave de tipo entero (puede ser cualquier otra tipo de
datos) y dos hijos: izquierdo (izq) y derecho (der). Para representar los enlaces con
los hijos se utilizan punteros. El rbol vaco se representar con un puntero nulo
(Vaca, R, 2008, p.1).
RBOL BINARIO
Un rbol binario puede declararse de la siguiente manera:
La profundidad de la raz es 0
La profundidad de un nodo es igual a la
profundidad de su padre + 1 (p.5)
RECORRIDO DE RBOLES
Pre orden: Se pasa por la raz y luego se recorre en pre orden cada uno de los
subrboles.
Recursivo.
EJEMPLOS
a,b,c,e,f,g,d
Consiste en visitar el nodo actual (visitar puede ser simplemente mostrar la clave
del nodo por pantalla), y despus visitar el subrbol izquierdo y una vez visitado,
visitar el subrbol derecho. Es un proceso recursivo por naturaleza.
Si se hace el recorrido en preorden del rbol de la figura 1 las visitas seran en el
orden siguiente: a,b,d,c,e,f.
}
}
Pgina 7 de 16
Postorden: Se recorre en postorden cada uno de los subrboles y luego se pasa
por la raiz. Recursivo.
EJEMPLO
b,e,g,f,c,d,a
Se visitan primero el subrbol izquierdo, despus el subrbol derecho, y por ltimo
el nodo actual. En el ejemplo de la figura 1 el recorrido quedara as: d,b,e,f,c,a.
Inorden: Se recorre en inorden el primer subrbol (si existe). Se pasa por la raz y
por ltimo se recorre en inorden cada uno de los subrboles restantes. Tiene sentido
fundamentalmente en rboles binarios. Recursivo.
EJEMPLO
b,a,e,c,g,f,d
se visita el subrbol izquierdo, el nodo actual, y despus se visita el subrbol
derecho. En el ejemplo de la figura 1 las visitas seran en este orden: b,d,a,e,c,f.
Pgina 8 de 16
a,b,c,d,e,f,g
Primero se visitan los nodos de nivel 1 (como mucho hay uno, la raz), despus los
nodos de nivel 2, as hasta que ya no queden ms.
if (a != NULL) {
CrearCola(cola);
encolar(cola, a);
while (!colavacia(cola)) {
desencolar(cola, aux);
visitar(aux);
if (aux->izq != NULL) encolar(cola, aux->izq);
if (aux->der != NULL) encolar(cola, aux->der);
}
}
}
Insercin
La insercin tampoco es complicada. Es ms, resulta prcticamente idntica a la
bsqueda. Cuando se llega a un rbol vaco se crea el nodo en el puntero que se
pasa como parmetro por referencia, de esta manera los nuevos enlaces
mantienen la coherencia. Si el elemento a insertar ya existe entonces no se hace
nada.
Borrado
La operacin de borrado si resulta ser algo ms complicada. Se recuerda que el
rbol debe seguir siendo de bsqueda tras el borrado. Pueden darse tres casos,
una vez encontrado el nodo a borrar:
Pgina 10 de 16
EJEMPLO DE ALGORITMO EN
JAVA
package arboles;
import javax.swing.JOptionPane;
{
Arbol arbol = new Arbol();
int valor;
String Dato;
System.out.println("\n\nRecorrido Preorden");
arbol.recorridoPreorden();
System.out.println("\n\nRecorrido Inorden");
arbol.recorridoInorden();
System.out.println("\n\nRecorrido Postorden");
arbol.recorridoPosorden();
}
}
Pgina 11 de 16
public class NodoArbol{
//miembros de acceso
NodoArbol nodoizquierdo;
int datos;
NodoArbol nododerecho;
Pgina 12 de 16
//insertar un nuevo ndo en el arbol de busqueda binaria
public synchronized void insertarNodo(int valorInsertar) {
if(raiz == null)
raiz = new NodoArbol(valorInsertar); //crea nodo raiz
else
raiz.insertar(valorInsertar); //llama al metodo insertar
}
// EMPIEZA EL RECORRIDO EN PREORDEN
public synchronized void recorridoPreorden(){
ayudantePreorden(raiz);
}
//meoto recursivo para recorrido en preorden
ayudanteInorden(nodo.nodoizquierdo);
System.out.print(nodo.datos + " ");
ayudanteInorden(nodo.nododerecho);
}
//EMPEZAR RECORRIDO PORORDEN
public synchronized void recorridoPosorden(){
ayudantePosorden(raiz);
}
//meotod recursivo para recorrido posorden
private void ayudantePosorden(NodoArbol nodo){
if( nodo == null )
return;
ayudantePosorden(nodo.nodoizquierdo);
ayudantePosorden(nodo.nododerecho);
System.out.print(nodo.datos + " ");
}
}
Pgina 13 de 16
Primero nos solicita ingresar el nmero de nodos que se desea que tenga el rbol.
Despus nos solicita que ingresemos los valores a colocar dentro del rbol.
Pgina 14 de 16
PRUEBA DE ESCRITORIO
ARBOL BINARIO
3 1 2 5 4 6
Dato = N= i ++ i<=n valorinsertar valor datosnodo datos raiz nodo nodo
Nodos Dato i d
6 6 1 V
6 6 1 v 6 6 6 6 6 null null
10 6 2 v 10 10 10 10 6 10
4 6 3 v 4 4 4 4 6 4
2 6 4 v 2 2 2 2 6 2
3 6 5 v 3 3 3 3 6 3
5 6 6 v 5 5 5
5 6
10 10
RECORRIDO RECORRIDO
PRE-ORDEN IN-ORDEN
Raiz izqu dere Raiz izqu dere
2
6
3
4
4
2 5
4 6
5 10
10
Pgina 15 de 16
RECORRIDO
IN-ORDEN
Raiz izqu dere
2
CONCLUSIONES
En conclusin, encontramos que los rboles, en especial los rboles binarios nos
sirven para organizar datos para facilitar su manipulacin, ya sea el ingreso, borrado
o bsqueda de datos, y precisamente una de las principales ventajas de los rboles
binarios es la bsqueda, ya que como en muchos algoritmos de bsqueda
necesitamos tener la informacin ordenada y en nuestros rboles binarios
precisamente los datos van ingresando de forma ordenada.
BIBLIOGRAFIAS
Matemticas discretas: Aplicaciones y ejercicios. (2014). 1st ed. [ebook] Mxico:
anonimo, pp.241-272. Consultado en :
http://file:///C:/Users/Cess/Desktop/Arboles/Matemticas%20Discretas%20-
%20Villalpando%20y%20Garca.pdf [consultado el da 4 May 2017].
Pgina 16 de 16