Está en la página 1de 6

Definicin de rboles Es una estructura jerrquica aplicada sobre una coleccin de elementos u objetos llamados nodos; uno de los

s cuales es conocido como raz. Un rbol de tipo T como una estructura omo!enea" que es la concatenacion de un elemento tipo T junto con un n#mero finito de rboles disjuntos" llamados subrboles $l!unas %aracteristicas & propiedades de los arboles Todo arbol que no este 'acio" tiene un nodo unico raiz (i un nodo ) es apuntado por el nodo *. (e dice que ) es ijo de * ) es antesesor de * si el nodo ) apunta al nodo *. ) es padre de * Todos los nodos que son descendientes directos+ ijos, de un mismo nodo+padre," son ermanos. (i un nodo no tiene ramificaciones + ijos," se conoce con el nombre de terminal u oja Todo nodo que no es raiz" ni oja se conoce como nodo interior. -rado es el numero de descendientes directos de un nodo" !rado de un arbol es el ma.imo !rado de todos los nodos del arbol /i'el es el numero de arcos que deben recorrerse para llea!ar a un nodo. 0aiz tiene ni'el 1 $ltura del arbol es el ma.imo n#mero de ni'eles de todos los nodos del rbol. rboles 2inarios Un arbol binario cada nodo puede tener como ma.imo dos subarboles & siempre es necesario distin!uir entre el subarbol izquierdo & el subarbol derec o $rbol binario tipo T es una estructura omo!enea que es la concatenacion de un elemento tipo T" llamado raiz" con dos arboles binarios disjuntos" llamados subarbol izquierdo & subarbol derec o. (e pueden aplicar para representar un arbol !enealo!ico o para representar e.presiones al!ebraicas construidas con operadores binarios Distintos. %uando sus estructuras son diferentes (imilares. %uando sus estructuras son identicas pero la informacion que contiene cada arbol es diferente. Equi'alentes. %uando son similares & ademas la informacion es identica entre los dos arboles. (e dice que un rbol binario est lleno si es un rbol binario de profundidad 3 que tiene +453, 6 1 nodos. Un rbol binario lleno es aquel que contiene el n#mero m.imo de

posibles nodos. %omo en estos casos no e.isten subrboles 'acos e.cepto para los nodos terminales. Un rbol binario con n nodos & profundidad 3 se dice que es completo si & slo si sus nodos se corresponden con los nodos numerados de 1 a n en el rbol binario lleno de profundidad 3. Definimos un rbol binario completo +$2%, como un $.2.lleno pero con sus ojas dispuestas de tal manera que las ojas del ni'el ms bajo estn situadas tan a la izquierda como sea posible. Estructuras de datos Heap (montculo) Un rbol completo" es aquel en el que todos los ni'eles" con e.cepcin del #ltimo" tiene sus nodos completos. Un arbol perfectamente equilibrado asta el penultimo ni'el" & en el ultimo ni'el los nodos se encuentran a!rupados a la izquierda . Un 7eap es un rbol binario completo a izquierda" que permite implementar una cola con prioridad" & donde los elementos se almacenan cumpliendo la propiedad de que la cla'e de un nodo siempre es ma&or +o menor, que la cla'e de cualquiera de sus ijos. 8o que nos ase!ura que la raz del rbol" en un 7eap" siempre es el elemento ma&or +o menor, de la estructura. El acceso a los elementos del 7eap en un arre!lo" se ace a tra'9s de al!unas operaciones aritm9ticas bsicas: 8eft+i, : return 4;i .6 <btiene el ijo izquierdo del elemento i. 0i! t+i, : return 4;i =1 .6 <btiene el ijo derec o del elemento i. >arent+i,: return floor+i?4, .6 <btiene el padre del elemento i.

%rear un arbol binario %ar!a+nodo, 1.6 8eer informacion+info, 4.6 7acer nodo5.info@info A.6 Escribir BE.iste nodo por la izquierdaCD E.6 8eer repuesta F.6 (i respuesta es afirmati'a entonces crea+otro, acer nodo5.izq@otro re!resar a car!a+nodo5.izq,??llamada recursi'a sino acer nodo5.izq@/il G.6 fin del paso F H.6 A.6 Escribir BE.iste nodo por la derec aCD I.6 8eer repuesta J.6 (i respuesta es afirmati'a entonces crea+otro, acer nodo5.der@otro re!resar a car!a+nodo5.der,??llamada recursi'a sino acer nodo5.der@/il 1K.6 fin del paso J 0ecorridos en arboles 0ecorrido en preorden 1.6Lisita la raiz 4.6 recorre el subarbol izquierdo A.6 recorre el subarbol derec o 0ecorrido en inorden 1.6 recorre el subarbol izquierdo 4.6 Lisita la raiz A.6 recorre el subarbol derec o 0ecorrido en postorden 1.6 recorre el subarbol izquierdo

4.6 recorre el subarbol derec o A.6 Lisita la raiz $l!oritmos de 0ecorridos >reorden+nodo, 1.6 (i nodo MNnil entonces 'isita el nodo+escribir la info del nodo, 0e!resa preorden+nodo5.izq, 0e!resa preorden+nodo5.der, 4.6 fin del paso 1 Onorden+nodo, 1.6 (i nodo MNnil entonces 0e!resa inorden+nodo5.izq, 'isita el nodo+escribir la info del nodo, 4.6 fin del paso 1

0e!resa inorden+nodo5.der,

>ostorden+nodo, 1.6 (i nodo MNnil entonces 0e!resa >ostorden+nodo5.izq, 0e!resa postorden+nodo5.der, 'isita el nodo+escribir la info del nodo,4.6 fin del paso 1

$rboles binarios de busqueda >ara todo nodo T del arbol debe cumplirse que todos los 'alores de los nodos del subarbol izquierdo de T seran menores al 'alor del nodo T & todos los 'alores de los nodos del subarbor derec o de T deben ser ma&ores. (i los 'alores se repiten solo se inserta una 'ez. Onsercion+nodo"info, 1.6 (i nodoMN/il entonces 1.1 (i infoMnodo5.info entonces insercion+nodo5.izq"info,

sino 1.1.1 (i infoNnodo5.info entonces insercion+nodo5.der"info, sino Escribir Binformacion &a 1.1.4 fin de 1.1.1 1.4 fin de 1.1 sino crea+otro, otro5.izq@otro5.der@/il otro5.info@info"nodo@otro. 4.6 fin de 1

e.istenteD

2#squeda en un arbol binario de buaqueda 2usqueda+nodo"info, 1.6 (i nodoMN/il entonces 1.1 (i infoMnodo5.info entonces 2usqueda+nodo5.izq"info, sino 1.1.1 (i infoNnodo5.info entonces 2usqueda+nodo5.der"info, sino Escribir BEl dato esta en el arbolD 1.1.4 fin del paso 1.1.1 1.4 fin del paso 1.1 sino Escribir BEl dato no esta en el arbolD Eliminar un nodo 7a& que eliminar un nodo si 'iolar los principios que definen un arbol binario de busqueda. 1.6 (i el nodo es terminal u oja" simplemente se suprime 4.6 (i solo tiene un solo descendiente" entonces tiene que sustituirse por ese descendiente A.6 (i tiene dos descendientes" entonces se tiene que sustituir por el nodo que se encuentra mas a la derec a en el subarbol izquierdo o mas a la izquierda en el subarbol derec o. >ero antes de eliminarlo se tiene que encontrar. >ara eliminar podemos seleccionar el mas !rande del subarbol izquierdo o el mas pequePo del subarbol derec o del nodo a eliminar

$l!oritmo de eliminacion Elimina+int 3"int e, ??elimina el elemento 3 & !uarda el 'alor en e Q nodoarbol ;p@root";pp@/U88; R ile+p SS p6NdatoT@3,??este recorrido busca el nodo" en pp se !uada el padre Q pp@p; ??del que queremos borrar & en p el nodo a borrar if+3Mp6Ndato, p@p6Nizq; else p@p6Nder; U Of+Tp, coutMMB/o se encuntra el datoD;??si no encontro a 3 else Qe@p6Ndato; Of+p6Nizq SSp6Nder, ??si tiene dos ijos" encuentra el mas !rande del subarbol izquierdo Qnodoarbol ;s@p6Nizq";ps@p; ??izquierdo de p R ile+s6Nder, Q ps@s; s@s6Nder;U ??se mue'e al mas !rande p6Ndato@s6Ndato; ??copia el dato del mas !rande a p p@s; p@s; pp@ps;U ??p tiene por lo menos un ijo" lo !uarda en c nodoarbol ;c; ??p tiene por lo menos un subarbol Of+p6Nizq, c@p6Nizq; else c@p6Nder; Of+p@@root, root@c; else Q ??identificar si p es el ijo izquierdo o derec o de pp Of+p@@pp6Nizq, pp6Nizq@c; else pp6Nder@c; U delete p; U ??fin del else de que lo encontro

2iblio!rafa Estructura de datos $utor:%airo6!uardatti Data structures" al!orit ms" and applications in %== $utor:(artaj (a ni

También podría gustarte