Estructura de datos


En informática , una estructura de datos es un formato de organización, gestión y almacenamiento de datos que permite un acceso y una modificación eficientes. [1] [2] [3] Más precisamente, una estructura de datos es una colección de valores de datos, las relaciones entre ellos y las funciones u operaciones que se pueden aplicar a los datos, [4] es decir, es una estructura algebraica acerca de los datos .

Las estructuras de datos sirven como base para los tipos de datos abstractos (ADT). El ADT define la forma lógica del tipo de datos. La estructura de datos implementa la forma física del tipo de datos. [5]

Los diferentes tipos de estructuras de datos se adaptan a diferentes tipos de aplicaciones y algunas son altamente especializadas para tareas específicas. Por ejemplo, las bases de datos relacionales suelen utilizar índices de árbol B para la recuperación de datos, [6] mientras que las implementaciones de compiladores suelen utilizar tablas hash para buscar identificadores. [7]

Las estructuras de datos proporcionan un medio para administrar grandes cantidades de datos de manera eficiente para usos tales como grandes bases de datos y servicios de indexación de Internet. Por lo general, las estructuras de datos eficientes son clave para diseñar algoritmos eficientes . Algunos métodos de diseño formales y lenguajes de programación enfatizan las estructuras de datos, en lugar de los algoritmos, como el factor organizativo clave en el diseño de software. Las estructuras de datos se pueden utilizar para organizar el almacenamiento y la recuperación de información almacenada tanto en la memoria principal como en la memoria secundaria. [8]

Las estructuras de datos se basan generalmente en la capacidad de una computadora para buscar y almacenar datos en cualquier lugar de su memoria, especificado por un puntero, una cadena de bits, que representa una dirección de memoria , que se puede almacenar en la memoria y manipular por el programa. Por lo tanto, las estructuras de datos de matriz y registro se basan en calcular las direcciones de elementos de datos con operaciones aritméticas , mientras que las estructuras de datos vinculadas se basan en almacenar direcciones de elementos de datos dentro de la propia estructura.

La implementación de una estructura de datos generalmente requiere escribir un conjunto de procedimientos que crean y manipulan instancias de esa estructura. La eficiencia de una estructura de datos no se puede analizar por separado de esas operaciones. Esta observación motiva el concepto teórico de un tipo de datos abstracto , una estructura de datos que se define indirectamente por las operaciones que se pueden realizar en él, y las propiedades matemáticas de esas operaciones (incluido su costo de espacio y tiempo). [9]


Una estructura de datos conocida como tabla hash .
Python 3. El tipo de jerarquía estándar.png