ESTRUCTURA DE DATOS
DEFINICIÓN 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.
DEFINICIÓN 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.
Una estructura de datos define la organización e interrelacionamiento de estos, y un conjunto de operaciones que se pueden realizar sobre él. Las operaciones básicas son: Alta, adicionar un nuevo nuevo valor valor a la estructura. estructura. Baja, borrar un valor de la estructura. Búsqueda, encontrar un determinado valor en la estructura para realizar una operación con este valor, en forma SECUENCIAL o BINARIO (siempre y cuando los datos estén ordenados) … Otras operaciones que se pueden realizar son: Ordenamiento, de los elementos pertenecientes a la estructura. Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las apareadas.
Cada estructura ofrece ventajas y desventajas en relación a la simplicidad y eficiencia para la realización de cada operación. De esta forma, 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
TIPOS DE DATOS : Definición
El tipo de un dato es el conjunto de valores que puede tomar durante el programa. Si se le intenta dar un valor fuera del conjunto se producirá un error.
La asignación de tipos a los datos tiene dos
objetivos principales: • Por un lado, detectar errores en las
operaciones
• Por el otro, determinar cómo ejecutar estas
operaciones Un lenguaje fuertemente tipeado es aquel en el que todos los datos deben de tener un tipo declarado explícitamente, y además que existen ciertas restricciones en las expresiones en cuanto a los tipos de datos que en ellas intervienen. Una ventaja de los lenguajes fuertemente tipeados es que se gasta mucho menos esfuerzo en depurar (corregir) los programas
6
Clasificación de los tipos de datos
En función de quien los define: Tipos de datos estándar. Tipos de datos definidos por el usuario
En función de la representación interna: Tipos de datos escalares o simples Tipos de datos estructurados.
Clases de tipos de datos 7
Los tipos de datos simples son los siguientes: Numéricos (Integer, Real) · Lógicos (Boolean) · Carácter (Char, String) ·
8
Representación de datos simples
Dato. Representación forma de hechos, conceptos o instrucciones Tipo de dato. Un conjunto de valores, aquellos que puede tomar cualquier dato de dicho tipo.
9
Representación de datos simples
Las variables y constantes que forman parte de un programa pertenecen a un tipo de datos determinado. De esta forma, los valores asociados a dichas variables (o constantes) pueden operar con otros de acuerdo a su naturaleza (p. e. dos números enteros pueden ser multiplicados pero no tiene sentido hacer esa operación con cadenas de caracteres).
Representación datos simples 10
NUMEROS ENTEROS Si utilizamos 32 bits para representar número enteros, disponemos de 2^32 combinaciones diferentes de 0 y 1`s:
4294967296 valores.
Como tenemos que representar número negativos y el cero: -2 147 483 648 al +2 147 483 647
Representación datos simples 11
NUMEROS ENTEROS Complemento unitario Complemento doble
12
Representación de datos simples
NUMEROS REALES.
(+|-) mantisa x 2exponente
En la notación del punto flotante un número real está representado por una hilera de 32 bits formada por una mantisa de 24 bits seguida de un exponente de 8 bits. La base se fija como 10. tanto la mantisa como el exponente son enteros binarios de complemento doble.
Estructuras de datos 13
Son datos elementales aquellos que se consideran indivisibles en unidades más simples.
Una estructura de datos es una clase de datos que se puede caracterizar por su organización y operaciones definidas sobre ella. Algunas veces a estas estructuras se les llama tipos de datos.
14
Estructuras de datos. Clasificación
Lógicas de datos.
En un programa, cada variable pertenece a alguna estructura de datos explícita o implícitamente definida, la cual determina el conjunto de operaciones validas para ella.
Primitivas y simples. Aquellas que no están compuestas por otras estructuras de datos por ejemplo, enteros, booleanos y caracteres.
15
Estructuras de datos. Clasificación
Lineales
No lineales incluyen
pilas, colas y listas ligadas lineales. grafos y árboles.
Organización de archivos
Las técnicas de estructuración de datos aplicadas a conjuntos de datos que los sistemas operativos manejan como cajas negras comúnmente se llaman Organización de Archivos.
1.1.2. Tipos de datos abstractos 16
Un tipo de datos abstracto – TDA define una nueva clase de objeto o concepto que puede manejarse con independencia de la estructura de datos para representarlo. Para ello es necesario especificar: Las operaciones que se puede realizar con los objetos. El efecto que se produce al actuar con las operaciones sobre los mismos.
1.1.2. Tipos de datos abstractos 17
. Un TDA encapsula la definición del tipo y todas las operaciones con este tipo. Los lenguajes de programación entregan al programador ciertos tipos de datos básicos o primitivos, especificando el conjunto de valores que una variable de uno de esos tipos puede tomar y el conjunto de operaciones realizables sobre los mismos. Por ejemplo, si se declara en C/C++
unsigned int x, y;
TDA 18
La instrucción n = 9+10 de un programa donde = es el operador de asignación, el contenido de la localidad de almacenamiento dado por n será el valor 19. Cada tipo de datos: ◦
◦
es reconocido por los elementos de datos que puede tomar. las operaciones asociadas a él. (su dominio)
Ejemplo : en pascal
Dominio entero D={0,1,2…. max}
Operaciones
TDA 19
Los TDAs son generalizaciones de los tipos de datos básicos y de las operaciones primitivas. Un TDA encapsula tipos de datos en el sentido que es posible poner la definición del tipo y todas las operaciones con ese tipo en una sección de un programa.
TDA 20
Por ejemplo, se puede definir un tipo de datos abstracto CONJUNTO [Aho1988] con el cual se pueden definir las siguientes operaciones: ANULA(A)
UNION(A, B, C)
Hace vacío al conjunto A Construye el conjunto C a partir de la unión de los conjuntos A y B.
TAMAÑO(A)
Entrega la cantidad de elementos del conjunto A.
TDA 21
El componente básico de una estructura de datos es la celda. La celda almacena un valor tomado de algún tipo de dato simple o compuesto El mecanismo de agregación de celdas llamado arreglo es una colección de elementos de tipo homogéneo.
TDA
0
22
: Arreglo bidimensional en C/C++
int w[5][3]
0
1
1 CELDA 3 4
w[i][j] = b[i * n + j]
n es la cantidad de columnas del arreglo
w[2][0] = b[6]
2
1 2 3 4 5 6 7 8 9 10 11 12 13 14
Estructuras de datos 23
Son datos elementales aquellos que se consideran indivisibles en unidades más simples.
Una estructura de datos es una clase de datos que se puede caracterizar por su organización y operaciones definidas sobre ella. Algunas veces a estas estructuras se les llama tipos de datos.
24
Estructuras de datos. Clasificación
Lógicas de datos.
En un programa, cada variable pertenece a alguna estructura de datos explícita o implícitamente definida, la cual determina el conjunto de operaciones validas para ella.
Primitivas y simples. Aquellas que no están compuestas por otras estructuras de datos por ejemplo, enteros, booleanos y caracteres.
25
Estructuras de datos. Clasificación
Lineales
No lineales incluyen
pilas, colas y listas ligadas lineales. grafos y árboles.
Organización de archivos
Las técnicas de estructuración de datos aplicadas a conjuntos de datos que los sistemas operativos manejan como cajas negras comúnmente se llaman Organización de Archivos.
Clasificación de las Estructuras de Datos
Las estructuras de datos estáticas:
Son aquel las en las que el tamaño ocupado en memoria se define antes de que el programa se ejecute y no puede modificarse dicho tamaño durante la ejecución del programa.
Las estructuras de datos dinámicas:
No tienen las limitaciones o restricciones en el tamaño de memoria ocupada que son propias de las estructuras estáticas. Mediante el uso de un tipo de datos especifico, denominado puntero, es posible construir estructuras de datos dinámicas que no son soportadas por la mayoría de los lenguajes, pero que en aquel los que si tienen estas características ofrecen soluciones eficaces y efectivas en la solución de problemas complejos.
Tipos de Datos Estructurados Estaticos -Arrays
Arreglos unidimensionales: Ejemplo: · Lista de Clase · Cola para comprar tickest · Vocales del abecedario.