Quando os programadores falam sobre "estruturas de dados", eles estão falando apenas de tipos abstratos de dados, como listas , árvores , hashes , gráficos etc.?
Ou esse termo inclui alguma estrutura que contém dados, como tipos compostos (objetos de classe, estruturas, enumerações etc.) e tipos primitivos (booleano, int, char, etc.)?
Eu só ouvi os programadores usarem o termo para fazer referência a estruturas de dados complexas ou tipos de dados abstratos, no entanto, o artigo da Wikipedia que fornece uma lista de estruturas de dados inclui tipos compostos e tipos primitivos na definição, o que não é o que eu esperava (mesmo embora faça sentido).
Ao procurar on-line, vejo outros lugares que se referem ao termo "estrutura de dados" no sentido de programação, como apenas referindo-se a tipos de dados abstratos, como esta palestra do Departamento de Ciência da Computação da Universidade Stony Brook, que afirma
Uma estrutura de dados é uma implementação real de um tipo de dado abstrato abstrato.
ou este wikibook sobre estruturas de dados , que usa o termo em frases como esta:
Como as estruturas de dados são abstrações de nível superior, elas nos apresentam operações em grupos de dados, como adicionar um item a uma lista ou procurar o item de maior prioridade em uma fila
Então, por que eu só ouço programadores se referindo a estruturas de dados complexas ou tipos abstratos de dados quando usam o termo "estrutura de dados"? Os programadores têm uma definição diferente para o termo que a definição do dicionário?
if programmers mean something different when they talk about data structures
ainda está buscando opiniões.Respostas:
A definição genérica de "estrutura de dados" é qualquer coisa que possa reter seus dados de maneira estruturada; portanto, isso inclui tipos compostos e tipos primitivos, além de tipos de dados abstratos. Por exemplo, a
string
é uma estrutura de dados, pois pode conter uma sequência de caracteres de maneira estruturada.No entanto, o termo também tem outro significado para os programadores.
Como o termo "estruturas de dados" é tão amplo, os desenvolvedores geralmente usam um termo mais específico para identificar do que estão falando, como
class
oudata object
ouprimitive type
, e o termo específico usado para os tipos de dados mais complexos ou abstratos é "estrutura de dados"É por isso que você ouve a "estrutura de dados" ser usada com mais frequência para tipos de dados abstratos como Matrizes, Listas, Árvores e Hashtables, e não para itens como tipos de dados primitivos
fonte
Lists
,Trees
,Graphs
, etc só acontece de ser "estruturas de dados"O termo refere-se a ambos, embora coisas como
ints
ebooleans
normalmente sejam consideradas tipos de dados primitivos (ou estruturas de dados primitivas). O termo em si simplesmente se refere a qualquer coisa que armazena dados de uma maneira específica. Certamenteint
atende a essa definição tão bem quanto a uma tabela Hash, mas é mais simples.Normalmente, quando as pessoas usam a estrutura de dados, elas se referem a estruturas de dados mais complexas, e não às mais simples, mas ambas atendem à definição.
fonte
int
"estrutura de dados".A definição mais simples e muito básica, que eu já ouvi sobre estruturas de dados, é armazenar dados na memória de forma que operações básicas como inserção, atualização, exclusão etc. possam ser realizadas de maneira eficiente em termos de tempo e memória.
Portanto, um tipo de dados informa o tipo de dados que armazenamos nele. Pode ser inteiro, decimal, caractere, string ou um objeto. Podem ser tipos compostos ou tipos primitivos, além de tipos de dados abstratos.
Porém, usamos estruturas de dados quando queremos armazenar dados complexos na memória. Essa é a razão pela qual ouvimos apenas sobre tipos de dados como Matrizes, Listas, Árvores e Hashtables, e não para coisas como tipos de dados primitivos
fonte