estructura de datos isc unidad 5

Post on 04-Feb-2016

16 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

programacion

TRANSCRIPT

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.

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

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.

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.

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

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.

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.

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

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

}}

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

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 + ", ");

}}

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

2(a – 1) + 3b

Ejemplo:

Implementación basada en enlaces

Á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)

Ejemplo:

Ejemplo:

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

Operaciones:

Búsqueda.

Inserción.

Eliminación

Búsqueda

Búsqueda

Inserción

Inserción

Ejemplo de Inserción

Ejemplo de Inserción

Eliminación

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.

Eliminación

Eliminación

Árbol binario: operaciones del TAD

Árboles Equilibrados

Árboles Equilibrados

Árboles Equilibrados

Árboles Equilibrados

Árboles Equilibrados

Árboles Equilibrados

top related