Algoritmos y estructuras de datos

Documentos relacionados
Tema Árboles generales. 9.2 Árboles binarios 9.3 Árboles de búsqueda

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres

TEORÍA DE GRAFOS Ingeniería de Sistemas

Árboles. Cursos Propedéuticos Dr. René Cumplido M. en C. Luis Rodríguez Flores

Capítulo 6. ÁRBOLES.

Es un conjunto de objetos llamados vértices o nodos unidos por enlaces llamados aristas o arcos, que permiten representar relaciones binarias entre

Ejemplos de TAD (tipos simples)

Estructuras de datos. Estructuras de datos

UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS

Bachillerato en Ingeniería del software

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción

Tema 10- Representación Jerárquica: Tema 10- Representación Jerárquica: Árboles Binarios

Tema: Los Grafos y su importancia para la optimización de redes.

(d) Puede haber estrategias que funcionan mejor que Minimax si el contrincante es

GRAMATICAS LIBRES DEL CONTEXTO

1. Conceptos básicos sobre el problema en cuestión y cuestiones afines. 2. Formulación de los correspondientes algoritmos y su pseudocódigo.

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006

(e) Con la poda alfa-beta se eliminan nodos que nunca serán alcanzados

: Algorítmica y Estructura de Datos I

UNIDAD 9. DATOS COMPLEJOS PILAS

árbol como un conjunto de nodos y líneas

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

A B MIN C D E F MAX x E.T.S.I. INFORMÁTICA 4º CURSO. INTELIGENCIA ARTIFICIAL E INGENIERÍA DEL CONOCIMIENTO

Estructuras de Datos Abstractas en Lenguaje Java

Capítulo 6. Relaciones. Continuar

Presentación. Estructuras de Datos y Algoritmos (EDA) Profesorado. Profesorado. Grado en Ingeniería Informática. Profesorado (Dpto.

Profesor(a): M. A. Zeferino Galarza Hernández

Planificaciones Algoritmos y Programación II. Docente responsable: CALVO PATRICIA MABEL. 1 de 6

Estructura de datos. Carrera: SCC Participantes

PRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA

Sistemas de producción y búsqueda de soluciones. Area de Computación e Inteligencia Artificial 1

Árboles balanceados. Alonso Ramírez Manzanares Computación y Algoritmos Thursday, April 30, 15

Notas de Clase. Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia. 21 de febrero de 2004

Ampliación de Estructuras de Datos

Estructuras de datos: Árboles binarios de

Árboles AVL. Laboratorio de Programación II

Clase 32: Árbol balanceado AVL


Relaciones. Estructuras Discretas. Relaciones. Relaciones en un Conjunto. Propiedades de Relaciones en A Reflexividad

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Estructuras de datos: Proyecto 2

JUEGOS. Área de aplicación de los algoritmos heurísticos Juegos bi-personales: oponente hostil

Caminos y Flujos optimales. Introducción a la Investigación de Operaciones 2007

Carrera: Licenciatura en Sistemas. Materia: Programación de computadoras. Profesor Asociado: Cdor. Héctor A. Carballo

Planificaciones Algoritmos y Programación I. Docente responsable: AZCURRA DIEGO ANDRES. 1 de 5

1.- DATOS DE LA ASIGNATURA

A) Nombre del Curso. B) Datos básicos del curso. Función del curso: C) Objetivos del curso. D) Contenidos y métodos por unidades y temas

El TAD Grafo. El TAD Grafo

3. ESTRUCTURAS DE DATOS NO LINEALES

Diseño arquitectónico 1ª edición (2002)

ÁRBOLES BINARIOS GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny

Teoría de Autómatas y Lenguajes Formales. Introducción a las Gramáticas. Gramáticas incontextuales

Arboles Binarios de Búsqueda

Registro (record): es la unidad básica de acceso y manipulación de la base de datos.

Tema 2: Representación de problemas como espacios de estados

UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS MISIÓN

Árboles Binarios Ordenados Árboles AVL

Estructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos

UNIVERSIDAD NACIONAL DE INGENIERÍA CENTRO DE EXTENSIÓN Y PROYECCIÓN SOCIAL

DISEÑO CURRICULAR ALGORITMOS, ESTRUCTURAS Y PROGRAMACIÓN I

Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE

Análisis amortizado El plan:

ELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal

En el presente video se resaltan los siguientes tres elementos esenciales de las matemáticas:

Tema 3: Problemas de Satisfacción de Restricciones

Problemas de satisfacción de restricciones. Javier Ramírez Rodríguez Departamento de Sistemas Universidad Autónoma Metropolitana

Arboles AA. Kenneth Sanchez y Tamara Moscoso 8 de octubre del 2015

Estructuras de Datos. Montículos. Montículos. Montículos. Tema 3. Montículos. Definiciones básicas: Definiciones básicas:

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

INSTITUTO UNIVERSITARIO PUEBLA PROGRAMA DE ESTUDIOS

Ing. Manuel Ramírez López ITESCA

GUÍA DOCENTE. Ingeniería Informática en Sistemas de Información Doble Grado:

Representación basada en Restricciones

Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION

ALGORITMO MINIMAX. o Nodo: Representa una situación del juego. o Sucesores de un nodo: Situaciones del juego a las que se

UNIVERSIDAD TECNOLOGICA DE LOS ANDES VICE RECTORADO ACADEMICO FACULTAD DE INGENIERÍA ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof.

Conjuntos y relaciones

Tema 5: Problemas de satisfacción de restricciones

CI-6675 Algoritmos y Estructuras Optimizadas para Videojuegos

Redes Semánticas. IIMAS Inteligencia Artificial. Alumno: Vicente Iván Sánchez Carmona Profesora: Dr. Ana Lilia Laureano

INGENIERIA EN TECNOLOGIA COMPUTACIONAL

Fundamentos de Programación Visual Basic

Tema 2. Recursividad. Fundamentos de Programación II. Luís Rodríguez Baena

CAPÍTULO 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS

Figura 3.1. Grafo orientado.

CODIGO: 770 CREDITOS: 4

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

DESCRIPCIÓN DEL CURSO:

Aprender a desarrollar con JavaScript

Árboles binarios de búsqueda ( BST )

Estructuras de Datos en Computación: Aprendizaje mediado a través del Diseño Digital Centrado en el Usuario.

Transcripción:

Algoritmos y estructuras de datos Dr. Eduardo A. Rodríguez Tello Laboratorio de Tecnologías de Información Cinvestav Tamaulipas ertello@tamps.cinvestav.mx Cursos de inducción a la MCC Cinvestav Tamaulipas 2012 1

Temario I. Introducción II. III. IV. Estructuras de datos estáticas y dinámicas Tipos de datos abstractos a. Listas b. Colas c. Pilas d. Arboles e. Grafos Ordenamientos V. Búsquedas VI. Resumen Cursos de inducción a la MCC Estructuras de datos Cinvestav Tamaulipas 2012 2

Arboles Un árbol es un conjunto finito de nodos: 1. Si la colección es vacía, se dice que el árbol es vacío 2. En caso contrario, un árbol A consiste de un nodo especial llamado raíz y n (sub)árboles no vacíos T 1,T 2,,T n.laraízde A se conecta con la raíz de cada T i por un arco dirigido A B C D E F G H Cursos de inducción a la MCC Estructuras de datos Cinvestav Tamaulipas 2012 3

Relaciones entre nodos Todo nodo n j, exceptuando el raíz, está conectado exclusivamente a otro nodo n k donde: n j es el padre de n k (e.g., B es el padre de E) n k es uno de los hijos de n j (e.g., E es un hijodeb) Nodos con el mismo padre son hermanos (e.g. B y C) Nodos sin hijos son llamados hojas (e.g. G) A B C D E F G H Cursos de inducción a la MCC Estructuras de datos Cinvestav Tamaulipas 2012 4

Árboles binarios Un árbol binario es un árbol en el cual cada nodo puede tener como máximo dos hijos Un árbol binario se define como: un árbol vacío, o un nodo raíz con un subárbol bárboliq izquierdo ierdoy un subárbol derecho Raíz 25 36 64 10 15 8 30 Árbol Árbol izquierdo derecho Cursos de inducción a la MCC Estructuras de datos Cinvestav Tamaulipas 2012 5

Operaciones básicas en árboles Crear un árbol vacío Verificar si el árbol está vacío Insertar un nodo Eliminari un nodo Recorrer un árbol Cursos de inducción a la MCC Estructuras de datos Cinvestav Tamaulipas 2012 6

Recorridos de árboles Procedimientos que visitan todos los nodos de un árbol efectuando una acción sobre cada uno Existen dos formas posibles de recorrer un árbol no vacío Amplitud: el proceso se realiza horizontalmente desde la raíz a todos sus hijos, luego a los hijos de sus hijos y así sucesivamente Profundidad: se sigue un camino desde la raíz a través de un hijo antes de proseguir al siguiente hijo Cursos de inducción a la MCC Estructuras de datos Cinvestav Tamaulipas 2012 7

Ejemplo de recorrido en amplitud A B C D E F G A, B, C, D, E, F, G Cursos de inducción a la MCC Estructuras de datos Cinvestav Tamaulipas 2012 8

Recorridos en profundidad Existen tres formas posibles de recorrer en profundidad un árbol no vacío, según cuando la raíz sea visitada Primer orden: Pre orden Segundo orden: Recorrida en orden Orden simétrico Tercer orden: Post orden se visita la raíz; se recorre el subárbol b izquierdo; i se recorre el subárbol derecho; se recorre el subárbol izquierdo; se visita la raíz; se recorre el subárbol derecho; se recorre el subárbol izquierdo; se recorre el subárbol derecho; se visita la raíz; Cursos de inducción a la MCC Estructuras de datos Cinvestav Tamaulipas 2012 9

Ejemplo de recorridos en profundidad A B C D E F G Preorden: A, B, D, E, C, F, G Inorden: D, B, E, A, F, C, G Postorden: D, E, B, F, G, C, A Cursos de inducción a la MCC Estructuras de datos Cinvestav Tamaulipas 2012 10

Grafos Un grafo G es un par (V,E), tal que: V: conjunto de nodos E: conjunto de arcos conectando a los nodos en V Un arco e = (u,v) es un par de nodos a c b V= {a,b,c,d,e} a b E= {(a,b),(a,c),(a,d), c (b,e),(c,d),(c,e), (d,e)} V={a, b, c} a d e E={<a, b>,<a, c>, <c,b>} Cursos de inducción a la MCC Estructuras de datos Cinvestav Tamaulipas 2012 11

Grafos dirigidos y no dirigidos Dirigido (o Digrafo) Cada línea te tiene euna adirección eccó a su sucesor Note que <vi, vj> <vj, vi> No dirigido Las líneas no tienen dirección Note <vi, vj> = <vj, vi> Cursos de inducción a la MCC Estructuras de datos Cinvestav Tamaulipas 2012 12

Operaciones en grafos Considere un grafo G y dos nodos x y y añade(g, x,y): añade en G un arco de x a y, si no existe borra(g, x,y): suprime un arco de x a y,siexiste adyacente(g, x,y): verifica si hay un arco de x a y en G vecinos(g, x): lista todos los nodos y tal que hay un arco entre x y y En los grafos que tienen valores asociados a sus arcos, también se tienen: asigna_valor(g, x,y,v): ) asigna el valor asociado id al arco (x,y) a v. obtener_valor(g, x,y): regresa el valor asociado al arco (x,y). Cursos de inducción a la MCC Estructuras de datos Cinvestav Tamaulipas 2012 13

Referencias Weiss, Mark A. Data Structures and Algorithm Analysis in C++, 3rd Ed. Addison Wesley Wesley, 2007. Joyanes Aguilar, Luis. Programación en C++: Algoritmos, estructuras de datos y objetos. McGraw Hill, 2000. Cursos de inducción a la MCC Estructuras de datos Cinvestav Tamaulipas 2012 14