Anda di halaman 1dari 16

Ideas generales Arboles binarios de bsqueda u

Memoria Dinmica a Estructuras no Lineales Arboles Binarios


Yolanda Garc Ruiz (UCM) a

December 3, 2010

Yolanda Garc Ruiz (UCM) a

Memoria Dinmica Estructuras no Lineales Arboles Binarios a

Ideas generales Arboles binarios de bsqueda u

Introduccin o Terminolog a

Arboles: Estructuras no lineales

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

Yolanda Garc Ruiz (UCM) a

Memoria Dinmica Estructuras no Lineales Arboles Binarios a

Ideas generales Arboles binarios de bsqueda u

Introduccin o Terminolog a

Son una generalizacin de las listas: o


Listas: cada elemento tiene un unico sucesor. Arboles: los elementos pueden tener ms de un sucesor. a

Permiten representar la nocin de jerarqu Ejemplos: o a.


Arboles genealgicos: familiares, ling o usticos. Arboles sintcticos. a Estructura de los directorios.

Yolanda Garc Ruiz (UCM) a

Memoria Dinmica Estructuras no Lineales Arboles Binarios a

Ideas generales Arboles binarios de bsqueda u

Introduccin o Terminolog a

Representacin de estructuras anidadas o

Representacin de expresiones o

Yolanda Garc Ruiz (UCM) a

Memoria Dinmica Estructuras no Lineales Arboles Binarios a

Ideas generales Arboles binarios de bsqueda u

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

Yolanda Garc Ruiz (UCM) a

Memoria Dinmica Estructuras no Lineales Arboles Binarios a

Ideas generales Arboles binarios de bsqueda u

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.

Yolanda Garc Ruiz (UCM) a

Memoria Dinmica Estructuras no Lineales Arboles Binarios a

Ideas generales Arboles binarios de bsqueda u

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.

Yolanda Garc Ruiz (UCM) a

Memoria Dinmica Estructuras no Lineales Arboles Binarios a

Ideas generales Arboles binarios de bsqueda u

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

Yolanda Garc Ruiz (UCM) a

Memoria Dinmica Estructuras no Lineales Arboles Binarios a

Ideas generales Arboles binarios de bsqueda u

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 ; };

Yolanda Garc Ruiz (UCM) a

Memoria Dinmica Estructuras no Lineales Arboles Binarios a

Ideas generales Arboles binarios de bsqueda u

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 ; }

Yolanda Garc Ruiz (UCM) a

Memoria Dinmica Estructuras no Lineales Arboles Binarios a

Ideas generales Arboles binarios de bsqueda u

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 ) ; }

Yolanda Garc Ruiz (UCM) a

Memoria Dinmica Estructuras no Lineales Arboles Binarios a

Ideas generales Arboles binarios de bsqueda u

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 ) ; }

Yolanda Garc Ruiz (UCM) a

Memoria Dinmica Estructuras no Lineales Arboles Binarios a

Ideas generales Arboles binarios de bsqueda u

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 ; }

Yolanda Garc Ruiz (UCM) a

Memoria Dinmica Estructuras no Lineales Arboles Binarios a

Ideas generales Arboles binarios de bsqueda u

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

Yolanda Garc Ruiz (UCM) a

Memoria Dinmica Estructuras no Lineales Arboles Binarios a

Ideas generales Arboles binarios de bsqueda u

Implementar una funcin que realice un recorrido inorden en un o ABB


v o i d i n o r d e r ( ArbolBB t ) { i f ( t != NULL ) { i n o r d e r ( t>i z q ) ; c o u t << t>i n f o << e n d l ; i n o r d e r ( t>d e r ) ; } }

Yolanda Garc Ruiz (UCM) a

Memoria Dinmica Estructuras no Lineales Arboles Binarios a

Ideas generales Arboles binarios de bsqueda u

Implementar una funcin que borre un ABB o


v o i d b o r r a r ( ArbolBB t ) { i f ( t != NULL ) { b o r r a r ( t>i z q ) ; b o r r a r ( t>d e r ) ; delete t ; } }

Yolanda Garc Ruiz (UCM) a

Memoria Dinmica Estructuras no Lineales Arboles Binarios a