BIENVENIDOS Instituto Tecnológico de Colima Estructuras de Datos

Slides:



Advertisements
Presentaciones similares
Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Advertisements

LICENCIATURA EN SISTEMAS COMPUTACIONALES EN ADMINISTRACION
Bruno López Takeyas Instituto Tecnológico de Nuevo Laredo
Estructura de Datos Hugo Araya Carrasco Hugo Araya Carrasco.
ESTRUCTURA DE DATOS.
Estructuras de Datos (ARRAYS)
Tipos de Datos Abstractos Modularidad
Tipo de Dato Abstracto Tipos de datos:
Funcionamiento, programación
PROGRAMACION DE ESTRUCTURAS DE DATOS
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Estructuras de control
Arreglos Ing. Nahiby Castillo.
UNIDAD II Modelo de Datos.
INTERFAZ DE ACCES DISEÑO DE BASE DE DATOS
METODO DE ORDENAMIENTO POR SELECCIÓN.
Estructuras de datos M.I.A Daniel Alejandro García López.
Algoritmos y Estructuras de Datos I
PROGRAMACION II.  Es un conjunto de datos no necesariamente del mismo tipo, los cuales se podrán manipular o realizar cualquier operación sobre cada.
Departamento de Informática Universidad Técnica Federico Santa María Capítulo 2 “Subprogramas/Funciones - Arreglos” Arreglos-Arrays.
Sistemas Operativos Procesos.
Unidad 1 Definiciones Básicas
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
Datos, datos y más datos: Funciones
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
Clase 10: Estructuras de datos y arreglos.
ESTRUCTURA DE DATOS ESD-243
Estructura de Datos y Algoritmos
ELO3201 Contenedores Biblioteca Estándar de Templates Agustín J. González ELO320 Contenido Contenedores: Vector, List, Deque, Stack, Queue, Priority Queue,
CARTOGRAFIA CURRICULAR
Introducción al lenguaje de programación SLE 2
Tecnólogo en Informática Estructura de Datos y Algoritmos.
Aplicación de estructuras de datos
75.40 Algoritmos y Programación I
Tecnológico de Estudios Superiores Huixquilucan Fundamentos de Sistemas Ingeniería en Sistemas Computacionales Lic.: Lydia Villavicencio Gómez “Paradigmas.
Introducción a las Bases de Datos Relacionales Juan Alberto Sigüenza Escuela Técnica Superior de Informática Universidad Autónoma de Madrid.
Clasificación de los TDA
Fundamentos de Programación
Programación en C para electrónicos
Estructura de Datos Ingeniería en Computación M. en C. J. Jesús Arellano Pimentel.
GUTIÉRREZ GRANADOS HÉCTOR DANIEL
Tipos de Datos abstractos
Algoritmos y programación 3 - cátedra Fontela Diseñando mi solución en POO Eugenio Yolis - Marzo 2008.
Vectores y Matrices.
Unidad II Aplicaciones con Arreglos en Java y C++
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
Registros Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
Estructuras de Datos y Algoritmos Introducción. Texto Requerido: Carrano & Prichard: Data Abstraction and Problem Solving with Java; Walls and Mirrors,
EQUIPO:#3 GRUPO:304 NOMBRES: Lizbeth Nava Barón y Erick Ali Mejía.
DEFINICION  Las bases de datos son una colección organizada de información dividida en campos los cuales nos proporcionan datos detallados e individuales.
CarrerasPre-Requisitos EvaluaciónModalidad Elaborado por:Fecha TODAS LAS CARRERAS - o - 4 HORAS SEM. TEÓRICO-PRACTICAS 1ER. PARCIAL 30%, 2DO. PARCIAL 30%,TUTORÍA.
Condiciones Físicas M.C. Juan Carlos Olivares Rojas Noviembre 2009.
Estructura de datos Francisco Castro
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
Arreglos: Vectores Departamento de Computación
Números complejos Operatoria y módulo © copywriter.
Al finalizar el curso el alumno será capaz de: Diseñar algoritmos utilizando estructuras estáticas de datos y programación modular.
IMPLEMENTACION DE COLAS MEDIANTE LISTAS
Introducción a los TADs
Computación I. CI-2125 Tema VII
Laboratorio de programación
MEMORIA DINÁMICA.
Escuela de Ciencias Básicas Tecnología e Ingeniería UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA DIRECTORA ING. VIVIAN ALVAREZ ALTAMIRANDA DICIEMBRE 2 DE.
PUNTEROS. Los punteros son de amplia utilización en programación y muchos lenguajes permiten la manipulación directa o indirecta de los mismos. Su razón.
La Programación Orientado a Objetos
Tipos de Datos abstractos
Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
PROGRAMACION DE APLICACIONES EN MEMORIA DEL COMPUTADOR = ALGORITMOS Y ESTRUCTURAS DE DATOS.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 4 – Tipos de Datos.
Transcripción de la presentación:

BIENVENIDOS Instituto Tecnológico de Colima Estructuras de Datos Ingeniería en Sistemas Computacionales BIENVENIDOS Estructuras de Datos

Introducción a las estructuras de datos Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales Unidad 1: Introducción a las estructuras de datos Joyanes Aguilar Luis (2006). Programación en C++. Algoritmos, estructuras de datos y otros objetos. Madrid: Mc Graw Hill Estructuras de Datos

Agenda de contenido temático Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales Agenda de contenido temático Tema Fecha Fuente 1.1 Tipos de datos abstractos (TDA) Martes 21 agosto Programación en C++. Algoritmos, estructuras de datos y otros objetos (Págs. ) 1.2 Modularidad Miércoles 22 de agosto 1.3 Uso de TDA Jueves 23 de agosto 1.4 Manejo de memoria estática Lunes 27 de agosto Programación en C++. Algoritmos, estructuras de datos y otros objetos (Capítulos 7, 8 y 9) 1.5 Manejo de memoria dinámica Miércoles 29 de agosto Estructuras de Datos

Agenda de actividades y/o productos Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales Agenda de actividades y/o productos Actividades Porcentaje Fecha entrega Evaluación continua Resumen 10 Permanente Cuadro comparativo Práctica de ejercicios 20 Proyecto 31 agosto Quiz Autoevaluación 3 septiembre Examen Estructuras de Datos

Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales Concepto de estructura de datos Colección de datos que se caracterizan por su organización y por las operaciones que se definen en ellos. Estructuras de Datos

Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales Concepto de estructura de datos En programación, una estructura de datos es una forma de organizar un conjunto de datos elementales (un dato elemental es la mínima información que se tiene en el sistema) con el objetivo de facilitar la manipulación de estos datos como un todo o individualmente. Estructuras de Datos

Las operaciones básicas son: Agregar y Borrar. Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales Operaciones Las operaciones básicas son: Agregar y Borrar. Otras operaciones frecuentes son: Buscar, Mostrar y Ordenar. Estructuras de Datos

Ventajas y desventajas Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales Ventajas y desventajas Cada estructura ofrece ventajas y desventajas en relación a la simplicidad y eficiencia para la realización de cada operación. Estructuras de Datos

Elección de la estructura de datos Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales Elección de la estructura de datos La elección de la estructura de datos apropiada para cada problema depende de factores como la frecuencia y el orden en que se realiza cada operación sobre los datos. Estructuras de Datos

Un tipo de dato abstracto es aquel definido por el programador que Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales 1.1 Tipos de datos abstractos John Guttag (1974)1: Un tipo de dato abstracto es aquel definido por el programador que puede ser manipulado de forma similar a los definidos por el sistema. 1Disponible en: http://quegrande.org/apuntes/EI/1/EDI/teoria/07-08/tad_-_que_es_un_tad.pdf Estructuras de Datos

Modelo matemático (tipo de dato complejo) + conjunto de Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales 1.1 Tipos de datos abstractos Modelo matemático (tipo de dato complejo) + conjunto de operadores del modelo Estructuras de Datos

1.1 Tipos de datos abstractos Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales 1.1 Tipos de datos abstractos Son diferentes: - tipo de dato básico (operadores+ valores), - dato estructurado o compuesto - tipo de dato abstracto • TDA generaliza los tipos de datos • Facilita la encapsulación / depuración Estructuras de Datos

UNA VEZ DEFINIDO EL TDA: Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales 1.1 Tipos de datos abstractos UNA VEZ DEFINIDO EL TDA: • sólo se puede acceder a los objetos del TDA mediante sus operadores, • ya no es necesario conocer cómo se implementan, • no debe hacerse referencia a los detalles de implementación Estructuras de Datos

Descomponer un problema en partes o módulos. Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales 1.2 Modularidad Permite: Descomponer un problema en partes o módulos. Implementar el programa mediante módulos. Cada módulo resuelve un sub-problema del programa. Estructuras de Datos

1.2 Modularidad Programación modular: Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales 1.2 Modularidad Programación modular: realización de un programa mediante módulos, cada módulo resuelve un sub-problema del programa Ventajas del enfoque modular: permite el desarrollo independiente de módulos (en grupo), facilita la depuración, encapsulación Estructuras de Datos

generalizan operadores sobre datos (no elementales), Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales 1.2 Modularidad Hasta ahora: programación modular = uso de algoritmos o procedimientos independientes que manipulan tipos de datos propios o predefinidos Los algoritmos: generalizan operadores sobre datos (no elementales), facilitan la encapsulación Estructuras de Datos

Arreglos Listas Pilas Colas Arboles Grafos 1.3 Uso de un TDA Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales 1.3 Uso de un TDA Arreglos Listas Pilas Colas Arboles Grafos Estructuras de Datos

1.3 Ejemplos de TDA Instituto Tecnológico de Colima TDA matriz Ingeniería en Sistemas Computacionales 1.3 Ejemplos de TDA TDA matriz Estructura de más de dos dimensiones de elementos de un tipo base, por ejemplo, matriz de 2 dimensiones de numérico. Operaciones del TDA Matriz • Crear (M: Matriz, Filas: numérico, Columnas: numérico, OK: lógico) • Borrar(M: Matriz, OK: lógico) • Sumar (M1: Matriz, M2: Matriz, M3: Matriz, OK: lógico) • Restar (M1: Matriz, M2: Matriz, M3: Matriz, OK: lógico) • Multiplicar (M1: Matriz, M2: Matriz, M3: Matriz, OK: lógico) • División (M1: Matriz, M2: Matriz, M3: Matriz, OK: lógico) • Determinante (M: Matriz, d: numérico, ok: lógico) • Compatibles? (M1: Matriz, M2: Matriz, operación: Carácter, Ok:lógico) Estructuras de Datos

1.3 Ejemplos de TDA Posible implementación {Tipo} Matriz = registro de Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales 1.3 Ejemplos de TDA Posible implementación {Tipo} Matriz = registro de num_fil, num_col: numérico; datos: Vector [1..M, 1..N] de T; {num_fil <= M, num_col <= N} fin_registro Cada una de las operaciones suele llevar una cabecera donde se especifica: - condiciones para utilizar el operador, - efecto/s del operador (tanto sobre los parámetros como sobre el entorno) Estructuras de Datos

1.4 Manejo de la Memoria Estática Instituto Tecnológico de Colima Departamento de sistemas y Computación 1.4 Manejo de la Memoria Estática La memoria estática es el espacio de memoria ram que se reserva mediante la declaración de las constantes, variables y estructuras correspondientes, previo a la ejecución de un programa, y que no cambia durante la ejecución de éste. Estructura de Datos Plan 2010

1.4 Manejo de la Memoria Estática Instituto Tecnológico de Colima Departamento de sistemas y Computación 1.4 Manejo de la Memoria Estática El lenguaje C++ maneja cuatro tipos de datos básicos: int, float, char y double. Estos tipos de datos están integrados en todas las computadoras. Los tipos ints tienen tres calificadores: short, long y unsigned. Estructura de Datos Plan 2010

1.4 Manejo de la Memoria Estática Instituto Tecnológico de Colima Departamento de sistemas y Computación 1.4 Manejo de la Memoria Estática Tipo de dato Tamaño char 8 bits Int 16 bits Long int 32 bits Double float bool 1 bits Estructura de Datos Plan 2010

1.4 Manejo de la Memoria Estática Instituto Tecnológico de Colima Departamento de sistemas y Computación 1.4 Manejo de la Memoria Estática Una declaración de variable establece que debe reservarse almacenamiento o memoria para un objeto de tipo especificado y que es posible hacer referencia al objeto en tal localidad de memoria con el identificador de variable definido. Estructura de Datos Plan 2010

1.4 Manejo de la Memoria Estática Instituto Tecnológico de Colima Departamento de sistemas y Computación 1.4 Manejo de la Memoria Estática En este caso, podemos considerar al lenguaje C++ como una máquina nueva con sus propias capacidades, tipos de datos y operaciones que nos permite plantear la solución a un problema en términos de las estructuras más útiles de C++. Estructura de Datos Plan 2010

1.4 Manejo de la Memoria Estática Instituto Tecnológico de Colima Departamento de sistemas y Computación 1.4 Manejo de la Memoria Estática El estudio de las estructuras de datos implica dos propósitos complementarios: Identificar, desarrollar entidades y operaciones matemáticas útiles determinando que clases de problemas se solucionan con ellas. Determinar representaciones para dichas entidades abstractas e implementar las operaciones para la estructura de datos Estructura de Datos Plan 2010

1.4 Manejo de la Memoria Estática Instituto Tecnológico de Colima Departamento de sistemas y Computación 1.4 Manejo de la Memoria Estática Una consideración fundamental en cualquier implementación es su eficiencia, y esta se mide por dos factores: el tiempo y el espacio. Generalmente, una implementación que es rápida usa más almacenamiento que una lenta. Estructura de Datos Plan 2010

1.4 Manejo de la Memoria Estática Instituto Tecnológico de Colima Departamento de sistemas y Computación 1.4 Manejo de la Memoria Estática Arreglos Arreglos de caracteres Arreglos de estructuras Arreglos como parámetros Arreglos multidimensionales Ordenamientos Búsquedas Estructura de Datos Plan 2010

1.4 Manejo de la Memoria Estática Instituto Tecnológico de Colima Departamento de sistemas y Computación 1.4 Manejo de la Memoria Estática Los Arreglos son tipos de datos compuestos o estructurados que existen en el lenguaje C. Un arreglo, se define en forma abstracta como un conjunto finito y ordenado de elementos homogéneos. Estructura de Datos Plan 2010

1.4 Manejo de la Memoria Estática Instituto Tecnológico de Colima Departamento de sistemas y Computación 1.4 Manejo de la Memoria Estática La declaración en C de un arreglo puede ser int b[100]; // especifica un array de 100 elementos Las dos operaciones básicas sobre un arreglo son el almacenamiento y la extracción . Se utilizan un arreglo cuando es necesario conservar en una forma uniforme una gran cantidad de artículos en la memoria y la referencia a todos ellos. Estructura de Datos Plan 2010

1.4 Manejo de Memoria Estática Instituto Tecnológico de Colima Departamento de sistemas y Computación 1.4 Manejo de Memoria Estática Representación en memoria de un arreglo. 99 98 97 . 2 1 1.74 Dirección 1.76 Contenido de la dirección 1.71 1.73 1.98 Estructura de Datos Plan 2010

1.4 Manejo de la Memoria Estática Instituto Tecnológico de Colima Departamento de sistemas y Computación 1.4 Manejo de la Memoria Estática La declaración anterior reserva 100 localidades de memoria sucesivas, cada una lo bastante grande para contener un entero único. La dirección de la primera de estas localidades se denomina la dirección base del arreglo b y se representa mediante base(b). Estructura de Datos Plan 2010

1.4 Manejo de la Memoria Estática Instituto Tecnológico de Colima Departamento de sistemas y Computación 1.4 Manejo de la Memoria Estática 1.Realice un programa en C que implemente un vector de 100 números enteros generados aleatoriamente (entre 1 y 100) y: 1) Genere los números 2) Muestre los números generados 3) Calcule la suma de los números 4) Calcule el promedio de dichos números 5) Localice al elemento mayor. y el elemento menor 6) Calcule la memoria estática utilizada por dicho programa. 7) Clasifique los elementos en Par e Impar 8) Ordene usando el método de la burbuja 9) Calcule la desviación de cada entero respecto al promedio. Estructura de Datos Plan 2010

1.4 Manejo de la Memoria Estática Instituto Tecnológico de Colima Departamento de sistemas y Computación 1.4 Manejo de la Memoria Estática 2.Realice un programa en C que implemente un vector para almacenar 20 estructuras con la siguiente información: CD id titulo artista num_canciones precio Considere las siguientes funciones: Ingresar Mostrar Eliminar (el indicado por el usuario) Consultar (si existe elemento indicado por el usuario. Modificar el elemento indicado por el usuario. Estructura de Datos Plan 2010

1.5 Memoria dinámica Instituto Tecnológico de Colima Departamento de sistemas y Computación 1.5 Memoria dinámica Estructura de Datos Plan 2010

Instituto Tecnológico de Colima Departamento de sistemas y Computación La memoria dinámica es el espacio de memoria ram que se reserva mediante la gestión de bloques de memoria en tiempo de ejecución y se libera en el mismo tiempo. Su característica principal es que crece y decrece en tiempo de ejecución Estructura de Datos Plan 2010

Un puntero C++ es la dirección de una variable. Instituto Tecnológico de Colima Departamento de sistemas y Computación CONCEPTO. Un puntero C++ es la dirección de una variable. Los punteros se rigen por cuatro reglas básicas: Un puntero es una variable como cualquier otra Una variable puntero contiene una dirección que apunta a otra dirección de memoria En la dirección almacenada están los datos a los que apunta el puntero Un puntero apunta a una variable de memoria Estructura de Datos Plan 2010

Operadores Operador Propósito & Obtiene la dirección de una variable * Instituto Tecnológico de Colima Departamento de sistemas y Computación Operadores Operador Propósito & Obtiene la dirección de una variable * Declara una variable como puntero NEW Gestiona un bloque de memoria puntero=NEW tipo delete Libera un bloque de memoria delete(puntero); Estructura de Datos Plan 2010

Int* p = &n; //p contiene la dirección de n Instituto Tecnológico de Colima Departamento de sistemas y Computación Ejemplo: Void main() { Int n=75; Int* p = &n; //p contiene la dirección de n Cout<<“n= “<<n<<“, “<<&n<<endl; Cout<<“p= “<<p<<endl; Cout<<“&p= “<<&p<<endl; } Estructura de Datos Plan 2010

Representación gráfica Instituto Tecnológico de Colima Departamento de sistemas y Computación ==IMPORTANTE== La dirección de n es “C4” La dirección de p es “D1” El valor o contenido de n es 75 El valor o contenido de p es “C4” P es una variable puntero que solo puede contener direcciones de memoria Representación gráfica A B C D   1 C4 2 3 4 75 5 p n Estructura de Datos Plan 2010

Se utiliza la macro NULL definida en la librería stdio.h Instituto Tecnológico de Colima Departamento de sistemas y Computación EL PUNTERO NULO Un Puntero nulo no apunta a ninguna parte, es decir, no direcciona ningún dato válido en memoria. Únicamente se utiliza para conocer cuándo un puntero apunta a una dirección válida. Se utiliza la macro NULL definida en la librería stdio.h Estructura de Datos Plan 2010

Instituto Tecnológico de Colima Departamento de sistemas y Computación Ejemplo: class lista { private: struct Nodo int clave Char nombre[30]; Int edad; Float estatura; Int peso; Nodo *siguiente; }; Nodo *principio, *final; public: lista(){ principio=NULL; final=NULL;} Void insertar_al_final(); Void mostrar(); Void eliminar_al_Principio(); Punteros a estructuas Se puede declarar un puntero a una estructura tal como se declara un puntero a cualquier otro objeto. Estructura de Datos Plan 2010

Práctica de ejercicios Instituto Tecnológico de Colima Departamento de sistemas y Computación Práctica de ejercicios Utilizando memoria dinámica realice una lista enlazada simple que incluya el siguiente menú: == OPERACIONES CON LISTAS ENLAZADAS SIMPLES == 1. Insertar al final 2. Mostrar 3. Eliminar al principio 4. Consultar 0. Salir Elija una opción [ ] Estructura de Datos Plan 2010

Tareas 1. Práctica de ejercicios: Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales Tareas 1. Práctica de ejercicios: MEMORIA ESTÁTICA Vector de enteros con 10 métodos Matriz con sumas de filas y columnas Vector de registros MEMORIA DINÁMICA Lista simple de números enteros con 4 métodos (Insertar, Mostrar, Eliminar, Memoria utilizada) 2. Cuadro comparativo de memoria estática & Memoria dinámica: definición, tipo de memoria, construcción física, costo, espacio físico, administración, tipo promedio de acceso, velocidad, implementación, liberación, grado de dificultad de programación, dirección, ventajas, desventajas, consumo de energía Estructuras de Datos

Fuentes bibliográficas Instituto Tecnológico de Colima Ingeniería en Sistemas Computacionales Fuentes bibliográficas Joyanes, Luis. (2006). Programación C++. Estructuras de datos y otros objetos. México: Mc Graw Hill. Scrib. (Sin fecha). Programación orientada a objetos. Disponible en: http://es.scribd.com/doc/36724636/Programacion-Orientada-A-Objetos-Luis-Joyanes-Aguilar Estructuras de Datos