You are on page 1of 45

RBOLES

UNIDAD 6

UNIDAD N 5
rboles. Definicin. Formas de Representacin. Caractersticas y Propiedades. Longitud de camino. rboles Binarios. Definicin. Terminologa. rboles Binarios distintos, similares y equivalentes. rboles Binarios Llenos y Completos. Representacin de rboles generales como binarios. Implementacin de rboles Binarios. Operaciones. rboles de Bsqueda Binarios. Definicin. Bsqueda. Operaciones. rboles Balanceados rboles Binarios Enganchados. Definicin. Criterio de enganche. Operaciones. rboles B. Definicin. Representacin. Operaciones

ARBOLES
Definicin:
Un rbol es una estructura de datos, que puede definirse de forma recursiva como: - Una estructura vaca o - Un elemento o clave de informacin (nodo) ms un nmero finito de estructuras tipo rbol, disjuntos, llamados subrboles. Si dicho nmero de estructuras es inferior o igual a 2, se tiene un rbol binario. Es, por tanto, una estructura no secuencial. Otra definicin nos da el rbol como un tipo de grafo: un rbol es un grafo acclico, conexo y no dirigido. Es decir, es un grafo no dirigido en el que existe exactamente un camino entre todo par de nodos. Esta definicin permite implementar un rbol y sus operaciones empleando las representaciones que se utilizan para los grafos

ARBOLES
Nomenclatura sobre rboles
Raz: es aquel elemento que no tiene antecesor; ejemplo: a. Rama: arista entre dos nodos. Antecesor: un nodo X es el antecesor de un nodo Y si por alguna de las ramas de X se puede llegar a Y. Sucesor: un nodo X es sucesor de un nodo Y si por alguna de las ramas de Y se puede llegar a X. Grado de un nodo: el nmero de descendientes directos que tiene. Hoja: nodo que no tiene descendientes: grado 0. Nodo interno: aquel que tiene al menos un descendiente. Nivel: nmero de ramas que hay que recorrer para llegar de la raz a un nodo. Altura: el nivel ms alto del rbol. Anchura: es el mayor valor del nmero de nodos que hay en un nivel.

ARBOLES FORMAS DE REPRESENTACIN GRFICA


Generalmente un rbol se representa partiendo desde su nodo raz hacia abajo con sus nodos descendientes.

ARBOLES FORMAS DE REPRESENTACIN GRFICA


Otra forma consiste en la Teora de Conjuntos.

A B

C D
E

ARBOLES FORMAS DE REPRESENTACIN GRFICA


Parntesis Anidados: los parntesis encierran a la raz y a los subrboles de cada rbol.

(A (B (D)(E)) (C))
Indentacin: representacin sangrada.

A B D E

ARBOLES
REPRESENTACIN INTERNA (IMPLEMENTACIN)

Implementacin Esttica: se utiliza un arreglo bidimensional, que contiene tantas columnas como campos tenga el nodo, y tantas filas como se haya declarado para el arreglo. Ejemplo: Sea el rbol Estticamente Info P1 P2 P3
1 A B 2 4 3 5

A B D i E F C G H Raiz= 1 Dispo= 10

3
4 5 6 7 8 9 10 11

C
D E F G H I -

6
9 11

7
-

8
-

ARBOLES
REPRESENTACIN INTERNA (IMPLEMENTACIN)

Implementacin Dinmica: se emplean estructuras encadenadas. El nodo de un rbol puede tener muchos nodos hijos, sin embargo cada nodo hijo puede tener un solo padre. Puede optarse por una estructura de nodo que contenga tantos campos punteros como hijos llegue a tener un rbol mas el campo informacin

ARBOLES
REPRESENTACIN INTERNA (IMPLEMENTACIN)

Ejemplo: Sea el rbol


D

A B E i
A

C F G H

ARBOLES BINARIOS
Un rbol binario es un conjunto finito de nodos, el cual puede ser vaco o se compone de una raz y de dos rboles binarios disjuntos llamadas subrbol izquierdo y subrbol derecho.

ARBOLES BINARIOS VS. ARBOLES GENERALES


Si el rbol binario tiene un solo subrbol se identifica si se trata del subrbol izquierdo o del subrbol derecho. Un rbol binario puede no tener ningn nodo. El nivel del nodo raz
en un rbol binario es igual a cero (0) en un rbol n-ario es igual a uno (1)

La profundidad o altura
de un rbol binario est dado por el mximo nivel alcanzado por un nodo. En un rbol n-ario es el mximo nivel alcanzado por un nodo + 1.

ARBOLES BINARIOS: REPRESENTACIN


Definiendo nodos con la siguiente estructura:

PIZQ

INFO

PDER

ARBOLES BINARIOS: TIPOS


rbol Binario Completo:
Llenos o equilibrados: todos los nodos hojas se encuentran al mismo nivel. Propiamente dicho u ordenados: aquellos que se encuentran llenos hasta el penltimo nivel y en el ltimo los nodos se ubican tan a la izquierda como sea posible.

rbol binario Vaco: aquel que no posee nodos rbol binario incompleto:
Oblicuo: todos los nodos se encuentran como parte del subrbol izquierdo o derecho. Propiamente dicho: los nodos hojas se encuentran en distintos niveles. Extendidos o ampliados: cada nodo tiene cero o dos hijos

RBOL BINARIO COMPLETO


Lleno o Equilibrado
B D E F A C G

Propiamente dicho u Ordenado


A B D E F K C G

RBOL BINARIO INCOMPLETO


Oblicuo
A B D B E F

Propiamente dicho
A C G

D
H

I
A B D E

Extendido o Ampliado

RBOLES BINARIOS DISTINTOS


Dos rboles binarios son distintos cuando sus estructuras son diferentes. En la figura, se presentan dos ejemplos de rboles binarios distintos.
A) B A

A B) A C

B A B

B
D C D

RBOLES BINARIOS SIMILARES


Dos rboles binarios son similares cuando sus estructuras son idnticas, pero la informacin que contienen sus nodos difiere entre s. En la figura se presentan dos ejemplos de rboles binarios similares.
A) A V

B B)

F A C P

B D

RBOLES BINARIOS EQUIVALENTES


Los rboles binarios equivalentes se definen como aquellos que son similares y adems los nodos contienen la misma informacin. La figura contiene dos ejemplos de rboles binarios equivalentes.
A) A A

B
B) A C B D C B D A

ARBOLES BINARIOS: CONVERSIN DE UN RBOL GENERAL


1. Se insertan aristas conectando a nodos hermanos y se eliminan todas las aristas que conectan a los nodos padre con sus hijos, excepto el nodo mas a la izquierda. Se gira el diagrama resultante 45 grados para distinguir entre los subrboles izquierdo y derecho.

2.

ARBOLES BINARIOS: CONVERSIN DE UN RBOL GENERAL


A A B E F K C G L F A G H I L K L J D D B H I J E C

B
E F

C
G

D
H I J

ARBOLES BINARIOS: RECORRIDOS


El recorrido en los rboles binarios suele plantearse recursivamente. Se realizan 3 operaciones:
1 Visitar la raz 2 Visitar el subrbol izquierdo 3 Visitar el subrbol derecho

El orden en el que se realicen estas operaciones determina el tipo de recorrido.

ARBOLES BINARIOS: RECORRIDOS


Preorden:
Se visita la raz Se visita el subrbol izquierdo Se visita el subrbol derecho

A B D H E F C G

Preorden: A, B, D, E, H, C, F, G

ARBOLES BINARIOS: RECORRIDOS


Entreorden:
Se visita el subrbol izquierdo Se visita la raz Se visita el subrbol derecho

A B D H E F C G

Entreorden: D, B, H, E, A, F, C, G

ARBOLES BINARIOS: RECORRIDOS


Posorden:
Se visita el subrbol izquierdo Se visita el subrbol derecho Se visita la raz

A B D H E F C G

Posorden: D, H, E, B, F, G, C, A

ARBOLES BINARIOS DE BUSQUEDA


Un rbol binario de bsqueda es aquel que es: Una estructura vaca o Un elemento o clave de informacin (nodo) ms un nmero finito -a lo sumo dos- de estructuras tipo rbol, disjuntos, llamados subrboles y adems cumplen lo siguiente:
Todas las claves del subrbol izquierdo al nodo son menores que la clave del nodo. Todas las claves del subrbol derecho al nodo son mayores que la clave del nodo. Ambos subrboles son rboles binarios de bsqueda.

EN LA SIGUIENTE FIGURA TENEMOS UN EJEMPLO DE RBOL BINARIO DE BSQUEDA.

ARBOLES BINARIOS DE BUSQUEDA


J

Preorden: J, F, D, I, H, P, M, Z
F D I M P Z Entreorden: D, F, H, I, J, M, P, Z Posorden: D, H, I, F, M, Z, P, J

ARBOLES BINARIOS DE BUSQUEDA


Bsqueda Directa
Para encontrar el nodo con la clave K en el rbol de bsqueda binario, con raz en Ri, se deben seguir los siguientes pasos:

Si el rbol est vaco, la bsqueda termina sin xito Si k = Ki, la bsqueda termina satisfactoriamente; el nodo encontrado es Ri, Si k < Ki, se debe buscar en el subrbol izquierdo de Ri, es decir, Ri := izquierdo (Ri), Si k > Ki, se debe buscar en el subrbol derecho de Ri, es decir, Ri := derecho (Ri).

ARBOLES BINARIOS DE BUSQUEDA


Insercin de nodos
Un nodo nuevo en un ABB es siempre colocado como hoja. Para insertar un nuevo nodo con clave k en el rbol de bsqueda binario con raz Ri, se deben seguir los siguientes pasos:
Si el rbol est vaco, el nodo con clave k ser la raz. Si k = Ki, la insercin no podr hacerse, pues ya existe la clave. Si k < Ki, el subrbol izquierdo de Ri, es recorrido hasta encontrar la posicin adecuada para insertar el nuevo nodo, Si k > Ki, el subrbol derecho de Ri, es recorrido hasta encontrar la posicin adecuada para insertar el nuevo nodo.

EJEMPLO
Supngase que quieren insertarse las siguientes claves en un rbol binario de bsqueda que se encuentre vaco:
claves: 120 - 87 43 65 140 99 130 22 - 56

Los resultados parciales que ilustran cmo funciona el procedimiento se presentan en las figuras que siguen:

Insercin clave 120

clave 87

clave 43

clave 65

Clave 140

Clave 99

Clave 130

Insercin: Clave 22

Clave 56

Nota: Las lneas gruesas indican el elemento que acaba de insertarse.

ARBOLES BINARIOS DE BUSQUEDA


Eliminacin de un nodo:
Se busca el nodo de clave K, que se quiere eliminar (se aplica el mtodo de busqueda directa) Si el nodo es encontrado: Si el nodo a eliminar, result ser la raz del rbol: El nodo raz del subrbol izquierdo ser la nueva raz. Si ste no existe entonces lo ser el nodo raz del subrbol derecho Si existe el subrbol izquierdo, se debe enganchar el nodo raz del subrbol derecho, al ltimo nodo hoja del subrbol izquierdo. Si el nodo a eliminar es intermedio, el nuevo subrbol debe engancharse al nodo padre del nodo a eliminar.

EJEMPLO:

Supngase que se desean eliminar las siguientes claves del rbol binario de bsqueda de la figura anterior: claves: 22 - 99 - 87 - 120 - 140 - 135 56 Los resultados parciales que ilustran cmo funciona procedimiento se presentan en las figuras que siguen: el

a)

b)

Nota: Las flechas indican el elemento que quiere eliminarse.

c)

d)

e)

f)

g)

ARBOLES BINARIOS ENGANCHADOS


Los rboles binarios enganchados o enhilados, surgen para facilitar el recorrido de sus elementos. Hay dos tipos de enhilados:

Solo se puede enhilar en funcin de algn mtodo de recorrido Existen dos maneras de implementarlos:

El enhilado derecho: enlaza a un nodo con su nodo sucesor segn el orden de recorrido El enhilado izquierdo: enlaza a un nodo con su nodo predecesor segn el orden de recorrido.

Agregando dos campos punteros segn el enhilado sea derecho o izquierdo Aprovechando los apuntadores nulos y agregando un campo bandera que indique si el apuntador referencia a un subrbol a un sucesor o antecesor

ARBOLES ENHILADOS

ARBOLES ENHILADOS

ARBOLES ENHILADOS

ARBOLES ENHILADOS

ARBOLES B
En informtica los rboles-B B-rboles son estructuras de datos de rbol que se encuentran comnmente en las implementaciones de bases de datos y sistemas de archivos. Los rboles B mantienen los datos ordenados y las inserciones y eliminaciones se realizan en tiempo logartmico amortizado.

ARBOLES B
B-rbol es un rbol de bsqueda que puede estar vaco o aquel cuyos nodos pueden tener varios hijos, existiendo una relacin de orden entre ellos. Un rbol-B de orden M (el mximo nmero de hijos que puede tener cada nodo) es un rbol que satisface las siguientes propiedades:

Cada nodo tiene como mximo M hijos. Cada nodo (excepto raz y hojas) tiene como mnimo M/2 hijos. La raz tiene al menos 2 hijos si no es un nodo hoja. Todos los nodos hoja aparecen al mismo nivel. Un nodo no hoja con k hijos contiene k-1 elementos almacenados. Los hijos que cuelgan de la raz (r1, , rm) tienen que cumplir ciertas condiciones:
El primero tiene valor menor que r1. El segundo tiene valor mayor que r1 y menor que r2, etc. El ltimo hijo tiene valor mayor que rm.

You might also like