estructura de datos isc unidad 5

39

Upload: jose-hernandez

Post on 04-Feb-2016

11 views

Category:

Documents


0 download

DESCRIPTION

programacion

TRANSCRIPT

Page 1: Estructura de Datos Isc Unidad 5
Page 2: Estructura de Datos Isc Unidad 5

5.1 Concepto de árbol.5.1.1 Clasificación de árboles.

5.2 Operaciones Básicas sobre árboles binarios.5.2.1 Creación.5.2.2 Inserción.5.2.3 Eliminación.5.2.4 Recorridos sistemáticos.5.2.5 Balanceo.

Unidad 5.- Estructuras no lineales.

Page 3: Estructura de Datos Isc Unidad 5

Un árbol es una colección de elementos, llamados nodos, uno de los cuales se distingue con el nombre de raíz, los cuales mantienen una relación (parentezco) que define una estructura jerárquica entre ellos.

Definición

Page 4: Estructura de Datos Isc Unidad 5

Concepto de árbol Estructura Jerárquica no lineal, dinámica.

Relaciones padre-hijo entre nodos. Ejemplos: sistema de archivos, estructura de un libro, diagrama organizacional, árboles genealógicos, etc.

Page 5: Estructura de Datos Isc Unidad 5

Concepto de árbol Un árbol se caracteriza por estar formado por

un conjunto finito de nodos, conectados por una serie de aristas, tales que verifican que:

hay un único nodo especial llamado raíz.

cada nodo, excepto la raíz, tiene un único nodo padre.

los nodos restantes se dividen en árboles mas pequeños llamados subárboles.

la definición de árbol implica tener una estructura recursiva (por la división en subárboles). la representación de los árboles se realiza con notaciones típicas de los árboles genealógicos. hay un único camino desde la raíz hasta cada nodo.

Page 6: Estructura de Datos Isc Unidad 5

Terminología básica Raíz: único nodo sin padre. Ej.: nodo A

Nodo interno: tiene al menos un hijo. Ej.: nodos B, F, C Nodo hoja (externo): nodo sin hijos. Ej.: nodos E, I, J, K, G, H, D

Descendiente directo: hijo. Ej.: B es descendiente directo de A

Descendiente: hijo, nieto, etc… Ej.: I es descendiente de F, B y A Subárbol: árbol formado por un nodo y sus descendientes. Ej.: los nodos encerrados en el triangulo

Page 7: Estructura de Datos Isc Unidad 5
Page 8: Estructura de Datos Isc Unidad 5

Terminología básica Grado de un nodo: Num. de descendientes directos. Ej.: el nodo B es grado 2.

Grado de un árbol: el grado mayor de sus nodos. Ej.: el nodo A y F son los de mayor grado (3), por lo tanto el árbol es grado 3.

Árbol binario: árbol de grado 2, cada nodo tiene como mucho dos descendientes directos.

Árbol multicamino: árbol de grado mayor que 2, cada nodo puede tener n descendientes directos.

Page 9: Estructura de Datos Isc Unidad 5

Terminología básica Profundidad de un nodo: Num. de predecesores. Ej.: profundidad de A es 0, profundidad de H es 2. Altura del árbol: es igual a la profundidad de su nodo mas profundo + 1. Ej.: la profundidad de I, J y K que son los nodos mas profundos es 3 por lo tanto la altura de árbol es 3 + 1 = 4.

Page 10: Estructura de Datos Isc Unidad 5

Terminología básica Camino: existe un camino del nodo X al nodo Y, si existe una sucesión de nodos que permita llegar desde X hasta Y, su longitud es el número de aristas que lo conforman.

camino(A,K)= {A, B, F, K}longitud 3

camino(C,K)= {} no hay camino

Page 11: Estructura de Datos Isc Unidad 5

Recorrido Preorden Se visita primero la raíz, luego el subárbol izquierdo y por ultimo el subárbol derecho, esto de manera recursiva para cada subárbol partiendo de la raíz.

public static void preorden(NodoArbol R){ if (R!=null) {

System.out.println(R.Descri);preorden(R.izq);preorden(R.der);

}}

Page 12: Estructura de Datos Isc Unidad 5

Recorrido Inorden Se visita primero el subárbol izquierdo, luego la raíz y por ultimo el subárbol derecho, esto de manera recursiva para cada subárbol partiendo de la raíz.

public static void inorden(NodoArbol R){ if (R!=null) { inorden(R.izq); System.out.print(R.Descri + ", "); inorden(R.der); }}

Page 13: Estructura de Datos Isc Unidad 5

Recorrido Postorden Se visita primero el subárbol izquierdo luego el subárbol derecho y por ultimo la raíz, esto de manera recursiva para cada subárbol partiendo de la raíz.

public static void postorden(NodoArbol R){ if (R!=null) {

postorden(R.izq);postorden(R.der);System.out.print(R.Descri + ", ");

}}

Page 14: Estructura de Datos Isc Unidad 5

Ejemplo: expresiones aritméticas nodos internos: operadores. nodos hoja: operandos.

2(a – 1) + 3b

Page 15: Estructura de Datos Isc Unidad 5
Page 16: Estructura de Datos Isc Unidad 5

Ejemplo:

Page 17: Estructura de Datos Isc Unidad 5

Implementación basada en enlaces

Page 18: Estructura de Datos Isc Unidad 5

Árboles Binarios de Búsqueda Un árbol binario de búsqueda es un árbol binario en el que para cada nodo n,

todas las claves de los nodos del subárbol izquierdo son menores que la clave de n (o igual).

y todas las del subárbol derecho mayores (o igual)

Page 19: Estructura de Datos Isc Unidad 5

Ejemplo:

Page 20: Estructura de Datos Isc Unidad 5

Ejemplo:

Page 21: Estructura de Datos Isc Unidad 5

En algunos casos se exige que el árbol sea completo, es decir que todo nodo interno tenga sus dos descendientes.

Page 22: Estructura de Datos Isc Unidad 5

Operaciones:

Búsqueda.

Inserción.

Eliminación

Page 23: Estructura de Datos Isc Unidad 5

Búsqueda

Page 24: Estructura de Datos Isc Unidad 5

Búsqueda

Page 25: Estructura de Datos Isc Unidad 5

Inserción

Page 26: Estructura de Datos Isc Unidad 5

Inserción

Page 27: Estructura de Datos Isc Unidad 5

Ejemplo de Inserción

Page 28: Estructura de Datos Isc Unidad 5

Ejemplo de Inserción

Page 29: Estructura de Datos Isc Unidad 5

Eliminación

Page 30: Estructura de Datos Isc Unidad 5

Algoritmo para borrar un nodo de un árbol binario de búsqueda.

Para borrar un nodo con información X se presentan los siguientes casos.

1.- Que el nodo no exista: no se realiza ninguna acción.

2.- El nodo a eliminar tiene 0 o 1 hijo: El padre del nodo a eliminar (abuelo) toma como hijo al nodo nieto.

3.-El nodo a eliminar tiene 2 hijos: El nodo con la información X no se borra físicamente, se realiza una sustitución de información, (solo datos) con una de las siguientes acciones.

a) La información mayor del subárbol izquierdo.b) La información menor del subárbol derecho.c) Después de la sustitución el valor que sustituyo al nodo X se manda a eliminar partiendo del subárbol donde se encuentra.

Page 31: Estructura de Datos Isc Unidad 5

Eliminación

Page 32: Estructura de Datos Isc Unidad 5

Eliminación

Page 33: Estructura de Datos Isc Unidad 5

Árbol binario: operaciones del TAD

Page 34: Estructura de Datos Isc Unidad 5

Árboles Equilibrados

Page 35: Estructura de Datos Isc Unidad 5

Árboles Equilibrados

Page 36: Estructura de Datos Isc Unidad 5

Árboles Equilibrados

Page 37: Estructura de Datos Isc Unidad 5

Árboles Equilibrados

Page 38: Estructura de Datos Isc Unidad 5

Árboles Equilibrados

Page 39: Estructura de Datos Isc Unidad 5

Árboles Equilibrados