ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Estrutura De Datos


Enviado por   •  2 de Mayo de 2013  •  2.634 Palabras (11 Páginas)  •  277 Visitas

Página 1 de 11

1.1 Definición.

En programación, 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 éstos 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).

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 sobre los datos.

1.2 Clasificación

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.

En ellas encontramos las siguientes:

ESTRUCTURAS 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. Las estructuras de datos que se discuten aquí son estructuras de datos lógicas. Cada estructura de datos lógica puede tener varias representaciones físicas diferentes para sus almacenamientos posibles.

ESTRUCTURAS PRIMITIVAS Y SIMPLES:

Son primitivas aquellas que no están compuestas por otras estructuras de datos por ejemplo, enteros, booleanos y caracteres. Otras estructuras de datos se pueden construir de una o más primitivas. Las estructuras de datos simples que consideramos se construyen a partir de estructuras primitivas y son: cadenas, arreglos y registros. A estas estructuras de datos las respaldan muchos lenguajes de programación.

ESTRUCTURAS LINEALES Y NO LINEALES:

Las estructuras de datos simples se pueden combinar de varias maneras para formar estructuras más complejas. Las dos cases principales de estructuras de datos son las lineales y las no lineales, dependiendo de la complejidad de las relaciones lógicas que representan. Las estructuras de datos lineales incluyen pilas, colas y listas ligadas lineales. Las estructuras de datos no lineales incluyen grafos y árboles.

1.3 Estructuras lineales y no lineales

Estructuras lineales.

Los diferentes TADs basados en este concepto se diferenciaran por las operaciones de acceso a los elementos y manipulación de la estructura. Desde el punto de vista de la informática, existen tres estructuras lineales especialmente importantes: las pilas, las colas y las listas. Su importancia radica en que son muy frecuentes en los esquemas algorítmicos.

Las operaciones básicas para dichas estructuras son:

* crear la secuencia vacía

* añadir un elemento a la secuencia

* borrar un elemento a la secuencia

* consultar un elemento de la secuencia

* comprobar si la secuencia está vacía

La diferencia entre las tres estructuras que se estudiarán vendrá dada por la posición del elemento a añadir, borrar y consultar:

* Pilas: las tres operaciones actúan sobre el final de la secuencia

* Colas: se añade por el final y se borra y consulta por el principio

* Listas: las tres operaciones se realizan sobre una posición privilegiada de la secuencia, la cual puede desplazarse

Se presenta el TAD de las pilas de elementos arbitrarios. Tras especificarlo, se muestra su implementación en vector (posteriormente se verá su implementación con memoria dinámica) y se discuten sus ventajas y desventajas.

Después se muestran las colas siguiendo un proceso idéntico al del subtema anterior. Se presenta y discute la implementación en vector circular (también posteriormente se verá su implementación en memoria dinámica).

Respecto a las listas, dado que hay muchas versiones diferentes se escoge una como base. Concretamente las listas con punto de interés, donde existe un elemento que sirve de referencia a las operaciones de inserción, supresión y consulta. Estas listas tienen el interés añadido de que son equivalentes a la noción de secuencia que los estudiantes conocen de Programación. Se da una especificación formal de estas listas y se discuten las diferentes implementaciones. Tras considerar una implementación secuencial, que resulta ineficiente en general, se detalla la representación encadenada, mucho más eficiente (coste constante en todas las operaciones), usando vectores. En la representación encadenada se ve la utilidad de introducir un elemento fantasma, que evita casos especiales en los algoritmos y simplifica el código.

Ante el problema de previsión de memoria necesaria a reservar, se presenta la utilización de memoria dinámica. Se exponen todos los inconvenientes asociados al uso de memoria dinámica (generación de basura, referencias colgadas, compartición de memoria, etc.) y se ilustran los peligros asociados a las implementaciones que los usan. Se muestra de forma muy natural la implementación con punteros de las listas, y se recuerdan las pilas y las colas comentando su implementación dinámica.

Pilas

Colas

Listas enlazadas

Estructuras no lineales.

Estructura de datos no lineales: árboles y grafos.

Diferenciar entre las estructuras árboles y grafos. Conocer la representación

...

Descargar como (para miembros actualizados)  txt (15.7 Kb)  
Leer 10 páginas más »
Disponible sólo en Clubensayos.com