arboles binarios

17

Click here to load reader

Upload: david-del-angel-rodriguez

Post on 11-Jul-2015

4.066 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arboles Binarios

ÁRBOLES BINARIOSKaren Ramírez RodríguezDavid del Ángel RodríguezRoberto Daniel Pantoja

Page 2: Arboles Binarios

INTRODUCCIÓN Es un conjunto finito de elementos, de

nombres nodos, que bien están vacios o esta formado por una raíz o con dos subárbol izquierdo y derecho.

Las aplicaciones de los arboles binarios se les puede utilizar para representar una estructura en la cual es posible tomar decisiones con dos opciones en distintos puntos.

Page 3: Arboles Binarios

OPERACIONES BÁSICAS Esta operación es un parámetro que es la visita

de todos los nodos o, como se denomina usualmente, del recorrido del árbol. Recorrido en amplitud

Es aquel que recorre el

árbol por niveles, en el último ejemplo

sería: 12 - 8,17 - 5,9,15

Page 4: Arboles Binarios

RECORRIDOS EN ÁRBOLES BINARIOS Hay tres tipos de recorridos Pre-orden,

Entre-orden y Post-orden.

1. Pre-ordenRecorre Raíz, Izquierda, Derecha. (RID) 2. Entre-orden Recorrer Izquierdo, Raíz, Derecho. (IRD) 3. Post-orden Izquierda, Derecha, Raíz. (IDR)

Page 5: Arboles Binarios

EJEMPLO DE RECORRIDO EN ÁRBOLES BINARIOS

Árbol Binario Pre-orden (A,B,C,D,E,F,G,H,I,J) Entre-orden(C,B,D,E,A,F,I,H.J,G) Post-orden (C,E,D,B,I,J,H,G,F,A)

Page 6: Arboles Binarios

ÁRBOLES BINARIOS DE BÚSQUEDA

Un árbol vacío es un árbol binario de búsqueda. Un árbol binario no vacío, de raíz, es un árbol binario de búsqueda si:

• En caso de tener subárbol izquierdo, la raíz debe ser mayor que el valor máximo almacenado en el subárbol izquierdo.

• En caso de tener subárbol derecho, la raíz debe ser menor que el valor mínimo almacenado en el subárbol derecho.

Page 7: Arboles Binarios

El interés de los árboles binarios de búsqueda (abb) radica en que su recorrido en in orden proporciona los elementos ordenados de forma ascendente y en que la búsqueda de algún elemento suele ser muy eficiente.

Page 8: Arboles Binarios

BÚSQUEDA

La búsqueda consiste acceder a la raíz del árbol, si el elemento a localizar coincide con éste la búsqueda ha concluido con éxito, si el elemento es menor se busca en el subárbol izquierdo y si es mayor en el derecho. Si se alcanza un nodo hoja y el elemento no ha sido encontrado se supone que no existe en el árbol

Page 9: Arboles Binarios

INSERCIÓNEs similar a la búsqueda y se puede dar una solución iterativa como recursiva. Si tenemos inicialmente como parámetro un árbol vacío se crea un nuevo nodo. Si no lo está, se comprueba si el elemento dado es menor que la raíz del árbol inicial con lo que se inserta en el subárbol izquierdo y si es mayor se inserta en el subárbol derecho. De esta forma las inserciones se hacen en las hojas

Page 10: Arboles Binarios

BORRADO

La operación de borrado no es tan sencilla como las de búsqueda e inserción. Existen varios casos a tener en consideración:

Borrar un nodo sin hijos ó nodo hoja: simplemente se borra y se establece a nulo el apuntador de su padre.

Page 11: Arboles Binarios

Borrar un nodo con un subárbol hijo: se borra el nodo y se asigna su subárbol hijo como subárbol de su padre.

Page 12: Arboles Binarios

Borrar un nodo con dos sub árboles hijo: la solución está en reemplazar el valor del nodo por el por el de su sucesor en in orden y posteriormente borrar este nodo. Su predecesor en in orden será el nodo más a la derecha de su subárbol izquierdo (mayor nodo del sub arbol izquierdo), y su sucesor el nodo más a la izquierda de su subárbol derecho (menor nodo del sub árbol derecho). En la siguiente figura se muestra cómo existe la posibilidad de realizar cualquiera de ambos reemplazos:

Page 13: Arboles Binarios

RECURSIVIDAD Definición.

Hablamos de recursividad, tanto en el ámbito informático como en el ámbito matemático, cuando definimos algo (un tipo de objetos, una propiedad o una operación) en función de sí mismo. La recursividad en programación es una herramienta sencilla, muy útil y potente.

Tipos.Podemos distinguir dos tipos de recursividad: Directa: Cuando un subprograma se llama a si mismo una o mas veces directamente. Indirecta: Cuando se definen una serie de subprogramas usándose unos a otros.

Page 14: Arboles Binarios

CARACTERISTICAS Ventajas e inconvenientes.

La principal ventaja es la simplicidad de comprensión y su gran potencia, favoreciendo la resolución de problemas de manera natural, sencilla y elegante; y facilidad para comprobar y convencerse de que la solución del problema es correcta. El principal inconveniente es la ineficiencia tanto en tiempo como en memoria, dado que para permitir su uso es necesario transformar el programa recursivo en otro iterativo, que utiliza bucles y pilas para almacenar las variables.

Page 15: Arboles Binarios

ARBOLES BINARIOS La búsqueda de un elemento en un ABB (Árbol

Binario de Búsqueda) se puede realizar de dos formas, iterativa o recursiva.

Ejemplo de versión iterativa en el lenguaje de programación C, suponiendo que estamos buscando una clave alojada en un nodo donde está el correspondiente "dato" que precisamos encontrar:

Page 16: Arboles Binarios
Page 17: Arboles Binarios