IC-t2 ESTRUCTURAS DE DATOS ÍNDICE Información estructurada y no estructurada Tipos básicos Tipos de datos estructurados Estructuras estáticas y dinámicas Ingeniería Informática - 1º - Estructura de Datos y de la Información 1 de 27 ESTRUCTURAS DE DATOS IC-t2 Información estructurada y no estructurada Estamos acostumbrados a manejar información estructurada, por ejemplo, nuestro lenguaje. Se compone de letras que se combinan formando sílabas y éstas formando palabras y éstas oraciones simples o compuestas. De ahí se puede pasar a párrafos, capítulos y llegar a libros de ensayo o a volúmenes de una enciclopedia. Sin embargo, esas letras pueden dar lugar a combinaciones no estructuradas dentro de las reglas de nuestro lenguaje. Pero también esas palabras podrían ordenarse en castellano de una manera estructurada, incluso aunque semánticamente no tuvieran sentido. Oración desestructurada: “cuñalaNtros de medio Los funcionan vÉrdego por cuntrios sobre” Oración estructurada: “Los cuñalantros sobre cuntrios funcionan por medio de vérdego”. Ingeniería Informática - 1º - Estructura de Datos y de la Información 2 de 27 ESTRUCTURAS DE DATOS IC-t2 Tipos de datos básicos Un tipo de dato describe un conjunto de objetos con la misma representación. Escalares. Son aquellos en los que el conjunto de datos está ordenado y su valor es atómico Enteros. Conjunto de números enteros definidos por las matemáticas: {-1,-2,...} U {0,1,2,...} Carácter. Conjunto de valores definido en un alfabeto dado Booleano. Conjunto de valores definido por dos valores verdadero y falso, {true, false}. Real Ordinales. Subconjunto de los escalares. Son aquellos en los que cada valor tiene un único predecesor y un único sucesor Enteros Carácter Booleano (False, menor que true) Ingeniería Informática - 1º - Estructura de Datos y de la Información 3 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos Modo de agrupación de los datos para que sean procesados (por las computadoras o por las personas) Al definir una operación, o ley de composición interna, en un conjunto de datos lo convertimos en una estructura, se convierte en algo más complejo que un mero conjunto de elementos. Ingeniería Informática - 1º - Estructura de Datos y de la Información 4 de 27 ESTRUCTURAS DE DATOS IC-t2 TAD = Tipo de datos + operaciones (II) Es un tipo especial de abstracción que involucra una descripción abstracta o lógica de los datos y de las operaciones definidas para un sistema Especificación: sintáctica y semántica Implementación: estructura de datos + algoritmos = programas. Se implementan mediante código No existe único TAD ideal capaz de ser el mejor para todos los casos. Ingeniería Informática - 1º - Estructura de Datos y de la Información 6 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos. Clasificación (I) Tipos de datos básicos No se suelen incluir en las clasificaciones de TAD, aunque sí se pueden efectuar operaciones sobre ellos Enteros. Conjunto de números enteros definidos por las matemáticas: {-1,-2,...} U {0,1,2,...}. Las operaciones: suma, resta, multiplicación y división entera. Real. Conjunto de números reales definidos por las matemáticas y como operaciones: suma, resta, multiplicación y división. Carácter. Conjunto de valores definido en un alfabeto dado y como operaciones todos los operadores relacionales: <, >, =, <>... Booleano. Conjunto de valores definido por dos valores verdadero y falso, {true, false}. False, menor que true. Como operaciones, las definidas por el álgebra de Boole: AND, OR, NOT. Ingeniería Informática - 1º - Estructura de Datos y de la Información 7 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos. Clasificación (II) Estáticas Básicas Arrays (arreglos) de una o varias dimensiones: vectores matrices, bidimensional cubos, tridimensional n dimensional Compuestas Registros Ficheros. Colecciones de registros Ingeniería Informática - 1º - Estructura de Datos y de la Información 8 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos. Clasificación (III) Dinámicas Punteros Lineales Listas Pilas Colas, bicolas o dipolos Listas enlazadas, doblemente enlazadas y circulares No lineales, complejas Árboles Grafos, digrafos Conjuntos Ingeniería Informática - 1º - Estructura de Datos y de la Información 9 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos estáticas Se dice que una estructura de datos es fundamental o estática cuando: Todos sus componentes son del mismo tipo Una vez definida, no se pueden crear nuevas variables ni alterar las ya definidas No es modificable durante la ejecución del programa Sirve de base para estructuras más complejas La cantidad de memoria ocupada debe ser declarada por anticipado y no podrá ser incrementada durante la ejecución del programa en el caso de que se necesite más. Se consideran estructuras estáticas las siguientes: “Arrays” o arreglos Los registros Los ficheros Ingeniería Informática - 1º - Estructura de Datos y de la Información 10 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos estáticas. Arrays o arreglos. Array unidimensional, vector,array lineal o arreglo Array bidimensional, array de dos dimensiones, matriz o tabla Array tridimensional o cubo Array n-dimensional Ingeniería Informática - 1º - Estructura de Datos y de la Información 11 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos estáticas. “Arrays” Una colección de un número finito de N elementos del mismo tipo Características N es un número entero positivo Se gestionan por índices que son números enteros positivos. V(I) Se almacenan en memoria en orden creciente de sus índices en posiciones consecutivas Operaciones Búsqueda Inserción Borrado Ordenación Recorrido Mezcla Ingeniería Informática - 1º - Estructura de Datos y de la Información 12 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos estáticas. Arrays. Ai (i = 1-N) A1 (6) A2 (9) A3 (12) A4 (13) ... An(15) Inserción Si lo que se desea es insertar un elemento al final del array, es una acción sencilla que se realiza siempre que haya área reservada en memoria. Si lo que se pretende es insertar un elemento en medio de otros dos, para conservar el orden, se deberá obligar a desplazarse una posición a todos los elementos posteriores al que se va a insertar, siempre y cuando las dimensiones del vector sean al menos una unidad mayor que el número de los elementos ocupados. Borrado de un elemento del array Si se desea borrar un elemento que está en la última posición no habrá ningún problema. Si se desea borrar un elemento intermedio, se deberá proceder, después del borrado, a desplazar los elementos que han quedado para que no haya huecos. Ordenación Se llama ordenación de un array a las operaciones necesarias para reorganizarlo, en sentido creciente o en sentido decreciente. Ingeniería Informática - 1º - Estructura de Datos y de la Información 13 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos estáticas. Arrays. Ejemplo: Representar con ordinograma el siguiente supuesto: Introducir por teclado un parámetro M y el siguiente array A(I) e imprimir la suma de sus elementos positivos. -5 15 23 -51 -7 Ingeniería Informática - 1º - Estructura de Datos y de la Información 4 6 14 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos estáticas. Arrays. Ejemplo: Representar con ordinograma el siguiente supuesto: Introducir por teclado un parámetro M y un array A(I) e imprimir la suma de sus elementos positivos. 1 INICIO A(I) > 0 Leer Sí SUMA = SUMA + A(I) No A(I) I = 1,M I=I+1 No I=M Suma = 0 Sí “La suma de los elementos de A es:” SUMA I= 1 FIN 1 Ingeniería Informática - 1º - Estructura de Datos y de la Información 15 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos estáticas. Arrays. Ejemplo: Representar con ordinograma el siguiente supuesto: Leer la siguiente cadena de caracteres y obtener el número de veces que aparecen las letras “a”, “A”, “e”, “E”, “i”, “I” en la misma “Se hace una distinción entre técnicas y prácticas en función del propósito al que respondan, entendiendo por técnica el conjunto de heurísticas y procedimientos que se apoyan en estándares, utilizan una o varias notaciones específicas en términos de sintaxis y semántica y cumplen unos criterios de calidad en cuanto a la forma de obtención del producto asociado. Las prácticas representan un medio para la consecución de unos objetivos específicos de manera rápida, segura y precisa sin necesidad de cumplir unos criterios o reglas preestablecidas.” Ingeniería Informática - 1º - Estructura de Datos y de la Información 16 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos estáticas. Matrices También llamadas Arrays de dos dimensiones o tablas MA (A= 1, M) * NB (B= 1,N) Colección de M*N elementos, donde M representa el número de filas que tiene la matriz y N el número de columnas y en la que se puede identificar a cada uno de los elementos por un par de índices (A,B), donde el primero (A) indica la fila y el segundo (B) la columna. Los índices son números enteros y han de cumplir que 1 <= A <= M y 1<= B <=N E1,1 E2,1 E3,1 E1,2 E2,2 E3,2 E1,3 E2,3 E3,3 E1,4 E2,4 E3,4 E1,5 E2,5 E3,5 Estructuras estáticas con un límite preestablecido antes de la compilación. Se gestionan con dos índices de cualquier tipo ordinal Sobre este tipo de estructuras se realiza el mismo tipo de operaciones que sobre los arrays Ingeniería Informática - 1º - Estructura de Datos y de la Información 17 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos estáticas. Matrices. Algunas aplicaciones Tablas de una base de datos relacional: Representación física de un tipo de entidad. Tablas de word (MS Office) En Excel, en Access (MS Office) En diversidad de técnicas: Análisis Coste/beneficio. Cálculo del retorno de la inversión y del valor actual de un bien Matriz Procesos/localización geográfica Matriz Almacenes de datos/entidades del modelo lógico de datos normalizado Matriz Entidades/procesos Matriz Entidades /eventos Matriz Objetos Diagrama de interacción/clases ... (en la metodologías de desarrollo se referencian más de 10 técnicas matriciales) En la Metodología multicriterio discreta: Evaluación de la mejor entre n alternativas considerando m criterios. Diagrama de Gantt Ingeniería Informática - 1º - Estructura de Datos y de la Información 18 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos estáticas. Matrices. Tabla de una base de datos relacional. Tipo de Entidad. Cada fila una tupla u ocurrencia de entidad. Cada columna un atributo C la ve A trib u to 1 A u to r A trib u to 2 T ítu lo A trib u to 3 E d ito ria l A trib u to N Año 001 J o ya n es y o tro E s tru ctu ra d e d ato s M c G ra w H ill 1998 002 H e rn á n de z E s tru ctu ras y o tro s d e d ato s P re n tic e H a ll 2000 003 D e M ig u e l y o tro R A -M A 1999 F u n d am e n. B .D . Ingeniería Informática - 1º - Estructura de Datos y de la Información 19 de 27 ESTRUCTURAS DE DATOS IC-t2 Ingeniería Informática - 1º - Estructura de Datos y de la Información 20 de 27 ESTRUCTURAS DE DATOS IC-t2 Ingeniería Informática - 1º - Estructura de Datos y de la Información 21 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos estáticas. Matrices. Ejemplo: Realizar el ordinograma del siguiente supuesto: Introducir una matriz A (9,8), calcular e imprimir la suma de sus elementos 1 2 3 4 5 6 7 8 total 1 3 4 5 3 4 2 56 6 83 2 34 5 67 8 54 23 12 4 207 3 9 8 7 56 44 7 3 89 223 4 5 6 7 5 4 3 5 44 79 5 12 23 2 3 4 98 7 6 155 Ingeniería Informática - 1º - Estructura de Datos y de la Información 6 12 13 21 22 45 3 44 4 164 7 56 56 5 4 3 33 45 3 205 8 56 77 8 6 3 3 5 55 213 9 6 6 5 7 8 34 55 6 127 22 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos estáticas. Matrices. Ejemplo: Realizar el ordinograma de flujo del siguiente supuesto: Introducir una matriz A (9,8), calcular e imprimir la suma de sus elementos 1 INICIO SUMA = SUMA + A(I, J) Suma = 0 A(I, J) I = 1,9 J=8 J= 1, 8 Sí No I= 1 I=I+1 I=9 No Sí J=J+1 “La suma de los elementos de la Matriz es:” SUMA J= 1 1 Ingeniería Informática - 1º - Estructura de Datos y de la Información FIN 23 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos estáticas. Matrices. Ejemplo: Realizar el ordinograma (representación gráfica del algoritmo) del siguiente supuesto:Generar e imprimir una matriz M (10, 10) cuyo contenido sean las tablas de multiplicar 1 1 2 3 4 5 6 7 8 9 10 2 2 4 6 8 10 12 14 16 18 20 3 3 6 9 12 15 18 21 24 27 30 4 4 8 12 16 20 24 28 32 36 40 5 5 10 15 20 25 30 35 40 45 50 6 6 12 18 24 30 36 42 48 54 60 Ingeniería Informática - 1º - Estructura de Datos y de la Información 7 7 14 21 28 35 42 49 56 63 70 8 8 16 24 32 40 48 56 64 72 80 9 9 18 27 36 45 54 63 72 81 90 10 10 20 30 40 50 60 70 80 90 100 24 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos estáticas. Registros Tipo de datos estructurado estático compuesto por un número fijo de componentes no necesariamente del mismo tipo, denominados campos del registro y tal que a cada componente del registro se accede mediante un selector de campo. Conjunto de campos relacionados entre sí que tienen una unidad dentro del fichero. Son estructuras contempladas en todos los lenguajes de programación de alto nivel, es decir esos lenguajes disponen de palabras clave (RECORD) para su declaración y expresiones sintácticas para acceder a sus elementos (READ...). Lógico: Unidad de información homogénea. Puede ser de longitud fija o de longitud variable. Varios registros lógicos suelen dar lugar a uno físico (bloque). Frecuente Físico: Unidad de lectura/escritura en la computadora Varios registros físicos pueden dar lugar a uno lógico (expandido). Excepcional Cuando un registro físico y uno lógico coinciden, el factor de bloqueo = 1 Ingeniería Informática - 1º - Estructura de Datos y de la Información 25 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos estáticas. Registros La longitud de un registro (no los campos del mismo) puede ser: Fija Variable Indefinida Las operaciones que se pueden realizar son: Consulta Inserción Borrado Modificación Clasificación Reorganización Ingeniería Informática - 1º - Estructura de Datos y de la Información 26 de 27 ESTRUCTURAS DE DATOS IC-t2 Estructuras de datos estáticas. Ficheros Estructura de datos estática que es el conjunto de varios registros. Conjunto de información (registros) homogénea y organizada referida a un mismo tema. Pueden almacenar: Programas (fuentes y objetos) Datos texto sonido voz imagen fija video ... Se estructuran en directorios mediante la descripción de una ruta o “path” Los directorios se encuentran dentro de discos físicos o unidades: C:/Mis documentos/universidad/cobol/programa1 Ingeniería Informática - 1º - Estructura de Datos y de la Información 27 de 27