ESTRUCTURAS DE DATOS AVANZADAS

Slides:



Advertisements
Presentaciones similares
5. Estructuras no lineales estáticas y dinámicas
Advertisements

ESTRUCTURA DE DATOS Unidad 04 TDA no lineales - Árboles.
Árboles de decisión Tema 9 Parte teórica Minería de datos
IBD Clase 7.
ESTRUCTURA DE DATOS Unidad 04 Árboles BINARIOS DE BUSQUEDA.
Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.
Montículos Daniel González Pérez Cristina Sánchez Aragón
ÁRBOLES EN C UNIVERSIDAD “ALONSO DE OJEDA” Facultad de Ingeniería
NUMERO DE CONTROL: NOMBRE DEL TRABAJO: MAPA CONCEPTUAL
Programación y Estructuras de Datos
MATEMÁTICAS DISCRETAS.
Instituto Tecnológico De Villahermosa
ÁRBOLES BINARIOS DE BUSQUEDA
Operaciones sobre un árbol
Tema 4 Árboles. Conceptos Generales..
Árboles balanceados AVL

ÁRBOLES DE EXPRESION.
Definiciones: conjuntos, grafos, y árboles
Definición Estructura de datos jerárquica (no lineal) que puede representarse como un conjunto de nodos enlazados entre sí por medio de ramas. Formalmente,
Slide 7-1 Copyright © 2003 Pearson Education, Inc. Figure: Estructuras de datos.
Arboles (Trees) Arboles Arboles binarios Recorridos de árboles
Inteligencia Artificial Resolver problemas mediante búsqueda
Almacenamiento y Recuperacion de Información TAD_ABB Ana Lilia Laureano Cruces Universidad Autónoma Metroplotiana.
Tema Nº4.
Inteligencia Artificial Resolver problemas mediante búsqueda
Teoría de Grafos.
Ana Lilia Laureano Cruces UAM-A
AED I. Estructuras de Datos.
Estructura de Datos Lineales
PROGRAMACIÓN PARALELA EN ALGORITMOS SOBRE GRAFOS
Material de apoyo Unidad 4 Estructura de datos
Grafos. Un Grafo G es un par de conjuntos (V, E), donde V es un conjunto no vacío de elementos llamados vértices o nodos y E es un conjunto formado por.
Árboles.
ÁRBOLES BINARIOS DE BÚSQUEDA
Estructuras de Datos MC Beatriz Beltrán Martínez.
Definiciones: conjuntos, grafos, y árboles
Árboles, montículos y grafos Cola de prioridades, montículos
Trabajo presentado por: LUIS FERNANDO OBANDO ING
I n s t i t u t o T e c n o l ó g i c o d e T e c n o l ó g i c o d e V i l l a h e r m o s a ING. EN SISTEMAS CATEDRATICO: I.I. Zinath Javier Gerónimo.
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
ARBOLES ESTRUCTURAS DE DATOS.
Estructura de Datos y Algoritmos
Árboles binarios de búsqueda
Arboles M.C. José Andrés Vázquez FCC/BUAP
ARBOLES ESTRUCTURAS DE DATOS.
Definición, propiedades, recorridos x a q yb w e vu fo.
INSTITUTO TECNOLÓGICO DE VILLAHERMOSA. CATEDRATICO:
Árboles.

Árboles Recomendado: 1. Nivelación Funciones
Árboles Binarios Estructuras de Datos.
Matemáticas Discretas
Sesión 3: Teoría de Grafos
Unidad 6: Árboles.
Definiciones: conjuntos, grafos, y árboles
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
ARBOLES GENERALIZADOS
Árboles Binarios de Búsqueda (ABB)
BUSQUEDA EN ANCHURA Y PROFUNDIDAD
Arboles Binarios.
A YUDANTÍA 5: A RBOLES Carlos Pulgar R. Mail: Página Ayudantía:
Árboles Binarios * Recorridos * Tipo
Árboles Equilibrados Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2015.
M.C. Meliza Contreras González
Matemáticas Discretas MISTI
Recorridos de grafos Segunda Parte M.C. Meliza Contreras González.
UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO LICENCIATURA EN INGENIERÍA DE SOFTWARE UNIDAD DE APRENDIZAJE: ESTRUCTURAS DE DATOS Créditos institucionales.
Árboles Binarios Estructuras de Datos.
Árboles Binarios Estructuras de Datos. Las estructuras dinámicas son las en la ejecución varia el número de elementos y uso de memoria a lo largo del.
Transcripción de la presentación:

ESTRUCTURAS DE DATOS AVANZADAS Árboles y Grafos

¿Qué son las estructuras de datos avanzadas? Son estructuras compejas no lineales y dinámicas donde en su ejecución varia el número de elementos y uso de memoria a lo largo del programa. Entre este tipo de estructuras podemos mencionar a los árboles, grafos y redes.

¿Qué es un Árbol? Son Estructuras de Datos no lineales. Es una colección de nodos donde cada uno, además de almacenar información, guarda la dirección de sus sucesores Es una estructura de datos jerárquica. La relación entre los elementos es de uno a muchos.

Terminología Nodo: Cada elemento en un árbol. Nodo Raíz: Primer elemento agregado al árbol. Nodo Raíz A B C D E F G K H

Más terminología Nodo Padre: Se le llama así al nodo predecesor de un elemento. Nodo Hijo: Es el nodo sucesor de un elemento. Hermanos: Nodos que tienen el mismo nodo padre. A Nodo Padre C B F y G son Nodos Hijos de C F y G son hermanos D E G F K H

Más terminología Nodo Hoja: Aquel nodo que no tiene hijos. A B C D E G F D, H, F y K son Nodos Hojas K H

Más terminología Subárbol: Todos los nodos descendientes por la izquierda o derecha de un nodo. A B C D E G F Subárbol derecho de C K H Subárbol izquierdo de C

Altura y Niveles Altura del árbol = 4 Nivel 0 Nivel 1 Nivel 2 Nivel 3 C Nivel 1 D G E F Nivel 2 K H Nivel 3 La Altura es la cantidad de niveles.

Elementos del árbol Nodo Raíz, Nodos Hijos, Nodos Hermanos, Altura, Recorridos, Dirección. Todo Árbol tiene un solo Nodo Raíz. Los Árboles pueden tener o no Nodos Hijos. En caso de tenerlos, pueden existir Nodos Hermanos. Si únicamente tiene un Nodo Raíz, su Altura = 0 y su Nivel = 1. Los Recorridos pueden ser en preorden, postorden y en orden. Un Árbol puede recorrerse en dirección Top-Down de arriba abajo, de abajo arriba, (Down-Top). A partir de su rama Izquierda o a partir de su rama Derecha.

Tipos de árbol Tipos de árboles Por su estructura Binarios Llenos Completos Equilibrados Degenerados Balanceados Por su recorrido Binarios de búsqueda Multicamino B B+ B* B+ Prefijos De Bits 2 - 4 R

Árbol Binario de Búsqueda (ABB) Este tipo de árbol permite almacenar información ordenada. Reglas a cumplir: Cada nodo del árbol puede tener 0, 1 ó 2 hijos. Los descendientes izquierdos deben tener un valor menor al padre. Los descendientes derechos deben tener un valor mayor al padre.

Ejemplos de ABB… 21 30 13 33 33 21 5 36 25 41 18 32 40 43 15

¿Por qué no son ABB? 21 5 13 33 6 1 22 17 18 4 25 2 15 40

Definición en C++ del ABB… struct nodo{ int nro; struct nodo *izq, *der; }; typedef struct nodo *ABB; /* es un apuntador de tipo nodo que hemos llamado ABB, que ulitizaremos para mayor facilidad de creacion de variables */

Proceso para buscar un nodo... Buscar el 25 Paso 1 ¿El 25 es mayor o menor que el 21? Paso 2 13 21 10 18 25 40 33 21 ¿El 25 es mayor o menor que el 33? 13 33 40 10 18 25 Paso 3 21 13 33 40 10 18 25 Encontrado

Proceso para agregar nodos... Reglas: (busca y agrega hojas) El valor a insertar no existe en el árbol. El nuevo nodo será un Nodo Hoja del árbol. Procedimiento Buscar el Nodo Padre del nodo a agregar. Agregar el nodo hoja.

Ejemplo Agregar el valor 26 Paso Paso 1 2 Paso Paso 3 4 13 21 10 18 25 ¿El 26 es mayor o menor que el 21? Paso 2 13 21 10 18 25 40 33 21 ¿El 26 es mayor o menor que el 33? 13 33 40 10 18 25 Paso 3 Paso 4 21 21 33 13 33 13 40 40 10 18 25 10 18 25 Se encontró el Nodo Padre Agregar el nodo 26

Recorrido de árboles Es el proceso de visitar de una manera sistemática, exactamente una vez, cada nodo en una estructura de datos de árbol (examinando y/o actualizando los datos en los nodos). Tales recorridos están clasificados por el orden en el cual son visitados los nodos.

Recorrido de árboles Preorden: (raíz, izquierdo, derecho). Para recorrer un árbol binario no vacío en preorden, hay que realizar las siguientes operaciones recursivamente en cada nodo, comenzando con el nodo de raíz: 1.Visite la raíz 2.Atraviese el sub-árbol izquierdo 3.Atraviese el sub-árbol derecho Inorden: (izquierdo, raíz, derecho). Para recorrer un árbol binario no vacío en inorden (simétrico), hay que realizar las siguientes operaciones recursivamente en cada nodo: 1.Atraviese el sub-árbol izquierdo 2.Visite la raíz Postorden: (izquierdo, derecho, raíz). Para recorrer un árbol binario no vacío en postorden, hay que realizar las siguientes operaciones recursivamente en cada nodo: 2.Atraviese el sub-árbol derecho 3.Visite la raíz

¿Qué es un grafo? Son Estructuras de Datos complejas no lineales, en las cuales cada elemento puede tener cero o más sucesores y cero o más predecesores. Están formados por nodos (vértices: representan información) y por arcos (aristas: relaciones entre la información) . R a b c d

Tipos de grafos

Grafos dirigidos En un grafo generalizado su dirección puede estar especificada o no. Por el contrario en el grafo dirigido o también conocido como digrafo, el conjunto de sus aristas tienen una dirección definida y está determinado por un par de conjuntos G=(V,A) donde V es un conjunto vacío llamado vértices o nodos y A es un conjunto de pares ordenados de elementos de V llamados aristas o arcos que van del primer al segundo nodo dentro del par.

Grafos ponderados Son útiles para medir las distancias en un mapa. Por ejemplo el caso de un repartidor de muebles que tiene que recorrer varias ciudades de México conectadas entre si por las carreteras que hay entre la Ciudad de México, Guadalajara y Monterrey, su misión es optimizar la distancia recorrida (minimizar el tiempo, prever tráfico y atascos). El grafo correspondiente tendrá como vértices estas ciudades y como aristas la red de carreteras y la valoración, peso o ponderación será la distancia que hay entre ellas. Para tal efecto, es preciso atribuir a cada arista un número específico, ponderación, peso o coste según el contexto, y se obtiene así un grafo valuado o ponderado. Un grafo ponderado o grafo con valores o pesos es un grafo G (V, E), en el que a cada arista se le asigna un valor real no negativo o peso. Sobre el conjunto de aristas se introduce una función peso ( w: E->R+ ) donde el peso de un subgrafo de un grafo ponderado es la suma de los pesos de todas sus aristas.

Gráfica de grafo ponderado

Operaciones con Grafos Insertar vértice (nodo). Es La operación de inserción de un nuevo nodo. Insertar arista. (arco). Cuando se inserte una nueva arista en el grafo, habrá que añadir un nuevo nodo a la lista de adyacencia (lista que almacena los nodos a los que un vértice puede acceder mediante una arista) del nodo origen, así si se añade la arista (A,C), se deberá incluir en la lista de adyacencia de A el vértice C como nuevo destino. Eliminar vértice. Esta operación es inversa a la inserción de l nodo Eliminar arista. Eliminación de la relación, se borra un arco del grafo. Otras operaciones.- Las operaciones adicionales que puede incluir un grafo son muy variadas. Además de las clásicas de búsqueda de un elemento o recorrido del grafo, también podemos encontrarnos con ejecución de algoritmos que busquen caminos más cortos entre dos vértices, o recorridos del grafo que ejecuten alguna operación sobre todos los vértices visitados, por citar algunas operaciones de las más usuales.