Académique Documents
Professionnel Documents
Culture Documents
December 3, 2010
Introduccin o Terminolog a
Idea formal: Un rbol es un grafo conexo sin ciclos a Idea intuitiva: Los rboles expresan relaciones jerrquicas en a a las que:
Cada elemento (excepto el primero) tiene un unico superior inmediato Cada elemento tiene varios siguientes inmediatos
Introduccin o Terminolog a
Introduccin o Terminolog a
Representacin de expresiones o
Introduccin o Terminolog a
A los elementos de la relacin se les llama nodos o El unico nodo sin antecesores es la ra z Los nodos sin descendientes se llaman hojas y el resto nodos internos Se llama rama a la secuencia de nodos que lleva de la ra a z cualquiera de las hojas Llamamos padre de un nodo a su antecesor inmediato Llamamos hijos de un nodo a sus descendientes inmediatos
Introduccin o Terminolog a
Arboles binarios: todo nodo tiene siempre dos hijos (aunque alguno pueda ser vac Un rbol binario puede ser vac o). a o.
Introduccin o Terminolog a
Arboles binarios: todo nodo tiene siempre dos hijos (aunque alguno pueda ser vac Un rbol binario puede ser vac o). a o.
Implementacin o
Caracter sticas: Son rboles binarios cuyos nodos almacenan datos entre los a que existe una relacin de orden. o Cada nodo es mayor que todos los nodos de su hijo izquierdo y menor que todos los nodos que los de sus hijos derechos. Permiten acceder a la informacin ecientemente. o Operaciones ms habituales: a
Crear un rbol vac a o, Buscar un elemento Insertar un elemento Borrar un elemento
El contenido de cada nodo se utiliza como clave para acceder a la informacin asociada. o
Implementacin o
Representacin de los Arboles Binarios de Bsqueda (ABB): o u Representacin o s t r u c t ArbolBB { int info ; ArbolBB h i j o i z q ; ArbolBB h i j o d e r ; };
Implementacin o
Crear un rbol vac a o ArbolBB t = NULL ; Preguntar si un rbol es vac a o: bool e s A r b o l V a c i o ( ArbolBB t ) { i f ( t != NULL ) r e t u r n f a l s e ; else return true ; }
Implementacin o
Implementar una funcin que inserte un nuevo elemento en un o ABB v o i d a b b a n y a d i r ( ArbolBB &t , i n t e ) { i f ( t == NULL ) { t = new A r b o l ; t>i n f o = e ; t>i z q = t>d e r= NULL ; } else i f (m < t>i n f o ) a b b a n y a d i r ( t>i z q , e ) ; e l s e a b b a n y a d i r ( t>d e r , e ) ; }
Implementacin o
Implementar una funcin que busque el elemento e en un rbol t o a (recursivo) ArbolBB a b b b u s c a r ( ArbolBB t , i n t e ) { i f ( t == NULL ) r e t u r n NULL ; else i f ( t>i n f o == e ) r e t u r n t ; e l s e i f ( e < t>i n f o ) r e t u r n a b b b u s c a r ( t>i z q , e ) ; e l s e r e t u r n a b b b u s c a r ( t>de r , e ) ; }
Implementacin o
Implementar una funcin que busque el elemento e en un rbol t o a (iterativo) ArbolBB a b b b u s c a r i t e r ( A r b o l t , i n t e ) { w h i l e ( t != NULL ) { i f ( t>i n f o == e ) r e t u r n t ; e l s e i f ( e < t>i n f o ) t=t>i z q ; e l s e t=t>d e r ; } r e t u r n NULL ; }
Ejemplos: A B D Recorridos: Preorden (Raiz-Izq-Der): A,B,D,E,C,F,G Inorden (Izq-Raiz-Der): D,B,E,A,F,C,G Postorden(Izq-Der-Raiz): D,E,B,F,G,C,A E F C G