Когда программисты говорят о «структурах данных», они говорят только об абстрактных типах данных, таких как списки , деревья , хеши , графики и т. Д.?
Или этот термин включает любую структуру, которая содержит данные, такие как составные типы (объекты классов, структуры, перечисления и т. Д.) И примитивные типы (логические, int, char и т. Д.)?
Я только когда-либо слышал, чтобы программисты использовали этот термин для обозначения сложных структур данных или абстрактных типов данных, однако статья Википедии, в которой приводится список структур данных, включает в определение как составные типы, так и примитивные типы, что я не ожидал (даже хотя это имеет смысл).
Глядя вокруг онлайн увидеть другие места , которые относятся к термину «структурам данных» в смысле программирования , как только со ссылкой на абстрактные типы данных, такие как лекции из отдела Stony Brook университета информатики , которые государство
Структура данных - это фактическая реализация определенного абстрактного типа данных.
или этот вики-журнал о структурах данных , который использует термин в предложениях, подобных этому:
Поскольку структуры данных являются абстракциями более высокого уровня, они представляют нам операции над группами данных, такие как добавление элемента в список или поиск элемента с наивысшим приоритетом в очереди.
Так почему же я слышу, как программисты ссылаются на сложные структуры данных или абстрактные типы данных, когда они используют термин «структура данных»? У программистов есть другое определение термина, чем определение словаря?
if programmers mean something different when they talk about data structures
все еще голосует за мнения все же.Ответы:
Общее определение «структуры данных» - это все, что может содержать ваши данные в структурированном виде, так что да, это будет включать составные типы и примитивные типы в дополнение к абстрактным типам данных. Например, a
string
- это структура данных, поскольку она может содержать последовательность символов в структурированном виде.Тем не менее, этот термин также имеет другое значение для программистов.
Поскольку термин «структуры данных» очень широк, разработчики обычно используют более конкретный термин для определения того, о чем они говорят, например,
class
илиdata object
илиprimitive type
, а конкретный термин, используемый для большинства сложных или абстрактных типов данных, - «структура данных».Вот почему вы слышите, что «структура данных» чаще всего используется для абстрактных типов данных, таких как массивы, списки, деревья и хеш-таблицы, а не для таких вещей, как примитивные типы данных.
источник
Lists
,Trees
иGraphs
т. Д. Просто «структуры данных»Термин относится к обоим, хотя такие вещи, как
ints
иbooleans
обычно рассматриваются как примитивные типы данных (или примитивные структуры данных). Сам термин просто относится ко всему, что хранит данные определенным образом. Конечно,int
соответствует этому определению так же, как что-то вроде хэш-таблицы, только это проще.Как правило, когда люди используют структуру данных, они ссылаются на более сложные структуры данных, а не на более простые, но оба соответствуют определению.
источник
int
«структурой данных».Самое простое и очень простое определение, которое я когда-либо слышал о структурах данных, - это сохранение данных в памяти таким образом, чтобы базовые операции, такие как вставка, обновление, удаление и т. Д., Могли быть выполнены эффективным способом с точки зрения времени и памяти.
Итак, тип данных сообщает тип данных, которые мы сохранили в нем. Это может быть целое число, десятичное число, символ, строка или объект. Это могут быть составные типы или примитивные типы в дополнение к абстрактным типам данных.
Но мы используем структуры данных, когда хотим сохранить какие-либо сложные данные в памяти. По этой причине мы слышим только о типах данных, таких как массивы, списки, деревья и хеш-таблицы, а не о таких вещах, как примитивные типы данных.
источник