Учебное пособие Самара 2015 + 004. 43 Ббк 32. 973 Н 19


Download 1.98 Mb.
bet4/53
Sana15.08.2023
Hajmi1.98 Mb.
#1667321
TuriУчебное пособие
1   2   3   4   5   6   7   8   9   ...   53
Bog'liq
Lekcii AiSD 2015

динамические (изменяющиеся) — списки, деревья, очере- ди, стеки, в общем случае графы.

Здесь следует обратить внимание на то, что термин «дина- тпческпе» употребляется в разных смыслах, и структуры, дина- мические по способу создания, могут быть статическими по сво- ему поведению. Структуры, динамические по поведению, как правило, оказываются динамическими и по способу создания. Также следует обратить внимание на то, что термин «статиче- ские» используется и в некоторых языках программирования, на- пример, в Си и Си++, и там его смысл в значительной степени отличается от подразумеваемого в приведённой классификации.
Мо месту размещения в памяти ЭВМ:

  1. существующие в оперативной памяти (или внутренние) ими могут быть все ранее рассмотренные примеры структур дан- ных. Кроме того, такие структуры могут размещаться:

    • в регистрах профессора — регистровые, обычно перемен- ные стандартных типов, размер которых не превышает разрядности процессора;

    • в стеке — локальные (в некоторых языках принято обозна- чение «автоматнческие» ) любые не статические и не динамические структуры;

    • в свободной (динамически выделяемой) памяти или «ку- че» глобальные, локальные статические (для языков Си и Си++) и все динамические структуры.

  1. хранящиеся на внешних носителях (внешних запоминаю-

щих устройствах) файлы и системы файлов.
Следующий критерий классификации справедлив только для некоторых языков программирования, а именно тех, которые допускают несовпадение типов данных в операциях и неявное преобразование типов с созданием временных объектов. Для это- го критерия достаточно сложно подобрать название в одном или нескольких словах, поэтому сразу приведём его варианты:
1.данные, создаваемые самим программистом (независимо от способа и времени создания), в англоязычной литературе по программированию часто обозначаемые словом persistent — «yc-

12
тойчивый» («постоянный», «постоянно существующий»). Та- ким являются структуры всех данных, явно созданных програм- мистом при написании программы;



    1. создаваемые и разрушаемые непосредственно во время работы программы без участия программиста, обычно во вспомо- гательных целях, например, при несовпадении типов данных в каких-либо операциях. Для них используется термин transient

«временный», «преходящий». Их действительно можно коротко назвать временными, поскольку они обычно уничтожаются сразу после их использования. Как правило, такие структуры данных являются безымянными. В некоторых языках программирования, например, Си++, такими данными могут быть данные любых ти- пов. О временных структурах часто говорят, что они создаются не программистом, а самим компилятором (ещё один вариант компилятор строит код программы так, чтобы эти данные были созданы и разрушены в нужные моменты работы программы).
Приведём ещё один вариант классификации структур дан- ных [9], совпадающий до некоторой степени с рассмотренным и представленный на рисунках 1.1 — 1.3. При этом необходимо помнить, что любая классификация является достаточно услов- ной и может не во всех случаях отражать реальность. Например, на рисунке 1.3 такие структуры данных как очередь, стек и дек отнесены к односвязным линейным структурам. В реальности они могут быть и двусвязными, и кольцевыми, и даже вообще не-






Простые (скалярные) данные



Данные стандартных типов

Символьного типа


Логического типа


Указательного типа


Арифметических
Натуральных чисел

Целых чисел


Вещественных чисел


Комплексных чисел


Данные типов, определяемых программистом

С фиксированной запятои


С плавающей







Однородные
Массивы
Одномерные (векторы)

Двумерные


Многомерные
Неоднородные (агрегативные)


Простые записи

Вариантные записи


Объединения


Объекты





Файлов

Множества


Рис. 1.2 — Составные статические структуры данных

15


Данные динамической

Текстовые
Несвязанные динамические данные

Связанные
динамические данные
классифицируются

ТипизированllЫ статическои

Нетипизированные





Линейной
Односвязные

Многосвязный кольцевои
СМИСОК
Очередь
Стек


/МИСОК
Многосвязные

СПИСОК
Кояьдевой


Разветвлённой



Односвязный кольцевои
СМИСОК
Деревья
Двоичные
Разветвлённые


    1. Download 1.98 Mb.

      Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   53




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling