Una estructura de datos es una unidad de software que le permite almacenar y procesar el mismo tipo y/o datos relacionados lógicamente . Para agregar, buscar, cambiar y eliminar datos, la estructura de datos proporciona un determinado conjunto de funciones que componen su interfaz.
El término "estructura de datos" puede tener varios significados cercanos, pero sin embargo diferentes [1] :
Las estructuras de datos se forman utilizando tipos de datos , referencias y operaciones sobre ellos en el lenguaje de programación elegido .
Diferentes tipos de estructuras de datos se adaptan a diferentes aplicaciones; algunos de ellos tienen una especialización estrecha para ciertas tareas. Por ejemplo, los árboles B suelen ser adecuados para crear bases de datos , mientras que las tablas hash se usan de forma ubicua para crear varios tipos de diccionarios, por ejemplo, para asignar nombres de dominio a direcciones de Internet de computadoras .
En el desarrollo de software, la complejidad de la implementación y la calidad del trabajo de los programas dependen significativamente de la correcta elección de las estructuras de datos. Esta comprensión dio lugar a métodos formales de desarrollo y lenguajes de programación que pusieron estructuras de datos, no algoritmos, al frente de la arquitectura de software. La mayoría de estos lenguajes cuentan con algún tipo de modularidad que permite reutilizar estructuras de datos de forma segura en distintas aplicaciones. Los lenguajes orientados a objetos como Java , C# y C++ son ejemplos de este enfoque.
Muchas estructuras de datos clásicas se proporcionan en las bibliotecas estándar de los lenguajes de programación o se integran directamente en los lenguajes de programación. Por ejemplo, la estructura de datos de la tabla hash está integrada en los lenguajes de programación Lua , Perl , Python , Ruby , Tcl y otros La biblioteca de plantillas estándar (STL) de C ++ se usa ampliamente.
Los bloques de construcción fundamentales para la mayoría de las estructuras de datos son matrices , registros ( structen C y Pascal ), uniones discriminadas ( recorden C) y referencias . Por ejemplo, se puede construir una lista doblemente enlazada usando entradas y enlaces, donde cada entrada (nodo) almacenará datos y enlaces a los nodos "izquierdo" y "derecho".union
Diseñar estructuras de datos para lenguajes funcionales es más difícil que para lenguajes imperativos por al menos dos razones [1] :
Estructuras de datos | |
---|---|
Liza | |
Árboles | |
cuenta | |
Otro |
Tipos de datos | |
---|---|
Ininterpretable | |
Numérico | |
Texto | |
Referencia | |
Compuesto | |
resumen |
|
Otro | |
Temas relacionados |