Учебное пособие Самара 2015 + 004. 43 Ббк 32. 973 Н 19
Download 1.98 Mb.
|
Lekcii AiSD 2015
динамические (изменяющиеся) — списки, деревья, очере- ди, стеки, в общем случае графы.
Здесь следует обратить внимание на то, что термин «дина- тпческпе» употребляется в разных смыслах, и структуры, дина- мические по способу создания, могут быть статическими по сво- ему поведению. Структуры, динамические по поведению, как правило, оказываются динамическими и по способу создания. Также следует обратить внимание на то, что термин «статиче- ские» используется и в некоторых языках программирования, на- пример, в Си и Си++, и там его смысл в значительной степени отличается от подразумеваемого в приведённой классификации. Мо месту размещения в памяти ЭВМ: существующие в оперативной памяти (или внутренние) — ими могут быть все ранее рассмотренные примеры структур дан- ных. Кроме того, такие структуры могут размещаться: в регистрах профессора — регистровые, обычно перемен- ные стандартных типов, размер которых не превышает разрядности процессора; в стеке — локальные (в некоторых языках принято обозна- чение «автоматнческие» ) любые не статические и не динамические структуры; в свободной (динамически выделяемой) памяти или «ку- че» глобальные, локальные статические (для языков Си и Си++) и все динамические структуры. хранящиеся на внешних носителях (внешних запоминаю- щих устройствах) файлы и системы файлов. Следующий критерий классификации справедлив только для некоторых языков программирования, а именно тех, которые допускают несовпадение типов данных в операциях и неявное преобразование типов с созданием временных объектов. Для это- го критерия достаточно сложно подобрать название в одном или нескольких словах, поэтому сразу приведём его варианты: 1.данные, создаваемые самим программистом (независимо от способа и времени создания), в англоязычной литературе по программированию часто обозначаемые словом persistent — «yc- 12
создаваемые и разрушаемые непосредственно во время работы программы без участия программиста, обычно во вспомо- гательных целях, например, при несовпадении типов данных в каких-либо операциях. Для них используется термин transient «временный», «преходящий». Их действительно можно коротко назвать временными, поскольку они обычно уничтожаются сразу после их использования. Как правило, такие структуры данных являются безымянными. В некоторых языках программирования, например, Си++, такими данными могут быть данные любых ти- пов. О временных структурах часто говорят, что они создаются не программистом, а самим компилятором (ещё один вариант компилятор строит код программы так, чтобы эти данные были созданы и разрушены в нужные моменты работы программы). Приведём ещё один вариант классификации структур дан- ных [9], совпадающий до некоторой степени с рассмотренным и представленный на рисунках 1.1 — 1.3. При этом необходимо помнить, что любая классификация является достаточно услов- ной и может не во всех случаях отражать реальность. Например, на рисунке 1.3 такие структуры данных как очередь, стек и дек отнесены к односвязным линейным структурам. В реальности они могут быть и двусвязными, и кольцевыми, и даже вообще не- Простые (скалярные) данные Данные стандартных типов Символьного типа Логического типа Указательного типа Арифметических Натуральных чисел Целых чисел Вещественных чисел Комплексных чисел Данные типов, определяемых программистом С фиксированной запятои С плавающей Однородные Массивы Одномерные (векторы) Двумерные Многомерные Неоднородные (агрегативные) Простые записи Вариантные записи Объединения Объекты Файлов Множества Рис. 1.2 — Составные статические структуры данных 15
Данные динамической Текстовые Несвязанные динамические данные Связанные динамические данные классифицируются ТипизированllЫ статическои Нетипизированные Линейной Односвязные Многосвязный кольцевои СМИСОК Очередь Стек /МИСОК Многосвязные СПИСОК
Разветвлённой Односвязный кольцевои СМИСОК Деревья Двоичные Разветвлённые Download 1.98 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling