La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

BIENVENIDOS Instituto Tecnológico de Colima Estructuras de Datos

Presentaciones similares


Presentación del tema: "BIENVENIDOS Instituto Tecnológico de Colima Estructuras de Datos"— Transcripción de la presentación:

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

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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: Estructuras de Datos

11 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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

20 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

21 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

22 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

23 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

24 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

25 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

26 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

27 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

28 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

29 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

30 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

31 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

32 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

33 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

34 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

35 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

36 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

37 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

38 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

39 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

40 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

41 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

42 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

43 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

44 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: Estructuras de Datos


Descargar ppt "BIENVENIDOS Instituto Tecnológico de Colima Estructuras de Datos"

Presentaciones similares


Anuncios Google