Cuando los programadores hablan de "estructuras de datos", ¿solo están hablando de tipos de datos abstractos como listas , árboles , hashes , gráficos , etc.?
¿O ese término incluye alguna estructura que contenga datos, como tipos compuestos (objetos de clase, estructuras, enumeraciones, etc.) y tipos primitivos (booleano, int, char, etc.)?
Solo he escuchado que los programadores usan el término para hacer referencia a estructuras de datos complejas o tipos de datos abstractos, sin embargo, el artículo de Wikipedia que proporciona una lista de estructuras de datos incluye tipos compuestos y tipos primitivos en la definición, que no es lo que esperaba (incluso aunque tiene sentido).
Cuando miro en línea, veo otros lugares que se refieren al término "estructura de datos" en el sentido de la programación como solo referencia a tipos de datos abstractos, como esta conferencia del Departamento de Ciencias de la Computación de la Universidad de Stony Brook que establece
Una estructura de datos es una implementación real de un tipo particular de datos abstractos.
o este wikibook en estructuras de datos , que usa el término en oraciones como esta:
Debido a que las estructuras de datos son abstracciones de nivel superior, nos presentan operaciones en grupos de datos, como agregar un elemento a una lista o buscar el elemento de mayor prioridad en una cola
Entonces, ¿por qué solo escucho a los programadores referirse a estructuras de datos complejas o tipos de datos abstractos cuando usan el término "estructura de datos"? ¿Los programadores tienen una definición diferente del término que la definición del diccionario?
if programmers mean something different when they talk about data structures
Sin embargo, todavía está buscando opiniones.Respuestas:
La definición genérica de "estructura de datos" es cualquier cosa que pueda contener sus datos de manera estructurada, por lo que sí, esto incluiría tipos compuestos y tipos primitivos además de los tipos de datos abstractos. Por ejemplo, a
string
es una estructura de datos, ya que puede contener una secuencia de caracteres de forma estructurada.Sin embargo, el término también tiene otro significado para los programadores.
Dado que el término "estructuras de datos" es tan amplio, los desarrolladores usualmente usan un término más específico para identificar de qué están hablando, como
class
odata object
oprimitive type
, y el término específico utilizado para los tipos de datos más complejos o abstractos es "estructura de datos"Esta es la razón por la que escucha que la "estructura de datos" se usa con mayor frecuencia para tipos de datos abstractos como matrices, listas, árboles y tablas hash, y no para cosas como tipos de datos primitivos
fuente
Lists
,Trees
,Graphs
, etc sólo pasa a ser "estructuras de datos"El término se refiere a ambos, aunque cosas como
ints
ybooleans
generalmente se consideran tipos de datos primitivos (o estructuras de datos primitivas). El término en sí mismo simplemente se refiere a cualquier cosa que almacene datos de una manera específica. Ciertamenteint
cumple con esta definición tan bien como algo así como una tabla Hash, solo que es más simple.Por lo general, cuando las personas usan la estructura de datos, se refieren a estructuras de datos más complejas, y no a las más simples, pero ambas cumplen con la definición.
fuente
int
una "estructura de datos".La definición más simple y muy básica, que he oído hablar de las estructuras de datos, es almacenar datos en la memoria de tal manera que las operaciones básicas como insertar, actualizar, eliminar, etc. puedan realizarse de manera eficiente en términos de tiempo y memoria.
Entonces, un tipo de datos indica el tipo de datos que hemos almacenado en él. Puede ser entero, decimal, carácter, cadena o un objeto. Pueden ser tipos compuestos o tipos primitivos además de los tipos de datos abstractos.
Pero, usamos estructuras de datos cuando queremos almacenar datos complejos en la memoria. Esta es la razón por la que escuchamos solo sobre tipos de datos como matrices, listas, árboles y tablas hash, y no para cosas como tipos de datos primitivos
fuente