Vous êtes sur la page 1sur 6

Una estructura de datos es una forma de organizar un conjunto de datos elementales con el

objetivo de facilitar su manipulación.

Un dato elemental es la mínima información que se tiene en un sistema.

Una estructura de datos define la organización e interrelación de estos y un conjunto de


operaciones que se pueden realizar sobre ellos. Las operaciones básicas son:

 Alta, adicionar un nuevo valor a la 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).

Ordenamiento

Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las apareadas.

Tipos de datos elementales  Binarios  Bit  Byte  Numéricos  Entero  Real  Coma flotante 
Alfanuméricos  Carácter  Cadena  Booleanos

Las estructuras de datos son necesarias tanto en la memoria principal como en la secundaria.

Datos estructurados: Estructura de Datos es una colección de datos que se caracterizan por su
organización y las operaciones que se definen en ella. Los datos de tipo estándar pueden ser
organizados en diferentes estructuras de datos: estáticas y dinámicas.

Estructura de datos estáticas: Son aquellas en las que el espacio ocupado en memoria se define
en tiempo de compilación y no puede ser modificado durante la ejecución del programa.

Corresponden a este tipo los arrays y registros.

Estructuras de datos dinámicas: Son aquellas en las que el espacio ocupado en memoria puede
ser modificado en tiempo de ejecución. Corresponden a este tipo las listas, árboles y grafos. Estas
estructuras no son soportadas en todos los lenguajes, estructuras de datos tienen en común un
identificador, nombre, puede representar a múltiples datos individuales.

Estructuras contiguas o físicas son aquellas que al representarse en el hardware del ordenador, lo
hacen situando sus datos en áreas adyacentes de memoria; un dato en una estructura contigua se
localiza directamente calculando su posición relativa al principio del área de memoria que
contiene la estructura. Los datos se relacionan por su vecindad o por su posición relativa dentro de
la estructura.
Las estructuras enlazadas son estructuras cuyos datos no tienen por qué situarse de forma
contigua en la memoria; en las estructuras enlazadas los datos se relacionan unos con otros
mediante punteros (un tipo de dato que sirve para ‘apuntar’ hacia otro dato y por tanto para
determinar cuál es el siguiente dato de la estructura). La localización de un dato no es inmediata
sino que se produce a través de los punteros que relacionan unos datos con otros.

economía espacial (no emplear más memoria de la necesaria) o temporal (emplear el menor
tiempo posible en las operaciones)

ESTRUCTURAS DE DATOS CONTIGUAS

CADENAS

La cadena es quizás la estructura más simple y se define como una secuencia de caracteres que se
interpretan como un dato único. Su longitud puede ser fija o variable por lo que, además de saber
que están constituidas por caracteres alfanuméricos, hemos de conocer su longitud.

Asignación

Concatenación

Extracción de subcadena

Arrays: Un arreglo (array) es una colección de datos del mismo tipo, que se almacenan en
posiciones consecutivas de memoria y reciben un nombre común.

Un arreglo es una colección finita, homogénea y ordenada de elementos.

TIPOS DE DATOS ABSTRACTOS Y RECURSIVIDAD

La Abstracción de Datos es la técnica de inventar nuevos tipos de datos que sean más adecuados a
una aplicación y, por consiguiente, facilitar la escritura del programa.

Un tipo de dato definido por el programador se denomina tipo abstracto de dato, TAD (Abstract
Data Type, ADT). El término abstracto se refiere al medio en que un programador abstrae algunos
conceptos de programación creando un nuevo tipo de dato.
Los primeros pasos hacia la abstracción de datos se crearon con lenguajes tales como FORTRAN,
COBOL y ALGOL 60

La siguiente generación de lenguajes, PASCAL, SIMULA-67 y ALGOL 68, ofreció una amplia
selección de tipos de datos y permitió al programador modificar y ampliar los tipos de datos
existentes mediante construcciones específicas (por ejemplo, arrays y registros).

La abstracción de datos es la técnica de programación que permite inventar o definir nuevos tipos
de datos (tipos de datos definidos por el usuario) adecuados a la aplicación que se desea realizar.
La abstracción de datos es una técnica muy potente que permite diseñar programas más cortos,
legibles y flexibles. La esencia de la abstracción es similar a la utilización de un tipo de dato, cuyo
uso se realiza sin tener en cuenta cómo está representado o implementado.

En términos más precisos, se indica que un tipo de dato definido por el usuario se denomina tipo
abstracto de dato (TAD) si:

 Existe una construcción del lenguaje que le permite asociar la representación de los datos con las
operaciones que lo manipulan;

 La representación del nuevo tipo de dato está oculta de las unidades de programa que lo utilizan

La implementación de un tipo abstracto de dato consta de:

1. Representación: elección de las estructuras de datos.

2. Operaciones: elección de los algoritmos

Un TDA es un tipo de dato definido por el programador que se puede manipular de un modo
similar a los tipos de datos definidos por el sistema. Está formado por un conjunto válido de
elementos y un número de operaciones primitivas que se pueden realizar sobre ellos

Definición de TAD

• Un Tipo Abstracto de Datos es un conjunto de valores y de operaciones definidos mediante una


especificación independiente de cualquier representación. TAD = valores + operaciones

• La manipulación de un TAD sólo depende de su especificación nunca de su implementación


VENTAJAS DE LOS TIPOS ABSTRACTOS DE DATOS

Permite una mejor conceptualización y modelización (modelado) del mundo real. Mejora la
representación y la comprensibilidad. Clasifica los objetos basados en estructuras y
comportamientos comunes.

2. Mejora la robustez del sistema. Permiten la especificación del tipo de cada variable, de tal
forma que se facilita la comprobación de tipos para evitar errores de tipo en tiempo de ejecución.
3. Mejora el rendimiento (prestaciones). Para sistemas tipificados, el conocimiento de los objetos
permite la optimización de tiempo de compilación.

4. Separa la implementación de la especificación. Permite la modificación y mejora de la


implementación sin afectar al interfaz público del tipo abstracto de dato.

5. Permite la extensibilidad del sistema. Los componentes de software reutilizables son más
fáciles de crear y mantener.
6. Recoge mejor la semántica del tipo. Los tipos abstractos de datos agrupan o localizan las
operaciones y la representación de atributos.

ESPECIFICACIÓN DE LOS TAD

El objetivo de la especificación es describir el comportamiento del TAD; consta de dos partes, la


descripción matemática del conjunto de datos, y de las operaciones definidas en ciertos
elementos de ese conjunto de datos. La especificación del TAD puede tener un enfoque informal,
éste describe los datos y las operaciones relacionadas en lenguaje natural. Otro enfoque más
riguroso, especificación formal, supone suministrar un conjunto de axiomas que describen las
operaciones en su aspecto sintáctico y semántico
DESCRIPCIÓN FUNCIONAL A continuación se especifica, siguiendo esos pasos, el tipo abstracto de
datos Conjunto: TAD Conjunto (colección de elementos sin duplicidades, pueden estar en
cualquier orden, se usa para representar los conjuntos matemáticos con sus operaciones). Las
operaciones básicas sobre conjuntos son las siguientes:

NORMA La especificación informal de un TAD tiene como objetivo describir los datos del tipo y las
operaciones según la funcionalidad que tienen. No sigue normas rígidas, simplemente indica, de
forma comprensible, la acción que realiza cada operación.

LA RECURSIVIDAD Se dice que una función es recursiva cuando se define en función de si misma.

C++ permite la recursividad. Cada vez que se llama a una función, se crea un juego de variables
locales, de este modo, si la función hace una llamada a sí misma, se guardan sus variables y
parámetros, usando la pila, y la nueva instancia de la función trabajará con su propia copia de las
variables locales. Cuando esta segunda instancia de la función retorna, recupera las variables y los
parámetros de la pila y continúa la ejecución en el punto en que había sido

Vous aimerez peut-être aussi