- •Понятие о структуре данного. Уровни представления структур данных.
- •Классификация сд в программах пользователя и в памяти эвм
- •Сд в оперативной памяти
- •Сд типа массив.
- •Сд типа запись (прямое декартово произведение).
- •Сд типа таблица.
- •Операции над таблицей:
- •Временная сложность алгоритмов.
- •Сд типа хеш-таблица.
- •Операция включения элемента в таблицу.
- •Операция исключения элемента из таблицы:
- •Сортировки. Улучшенные методы сортировок.
- •Классификация задач по временной сложности.
- •Сд типа стек.
- •Алгоритм сортировки Хоара (стек используется для хранения границ сортируемой области в таблице):
- •Сд типа очередь.
- •Связное распределение памяти.
- •Сд типа линейный односвязный список.
- •Сд типа указатель.
- •Статические и динамические переменные.
- •Сд типа циклический линейный список.
- •Сд типа двусвязный линейный список.
- •Сд типа дек.
- •Многосвязные списки.
- •Средства объектно-ориентированного программирования.
- •Объекты и свойства инкапсуляции.
- •Наследование и переопределение.
- •Полиморфизм. Виртуальные методы.
- •Динамические объекты. Деструкторы.
- •Обработка ошибок при работе с динамическими объектами.
- •Модули, экспортирующие объекты.
- •Нелинейные структуры данных.
- •Сд типа дерево.
- •Представление деревьев в связной памяти эвм.
- •Алгоритмы прохождения деревьев в глубину и в ширину.
- •Представление деревьев в виде бинарных.
- •Представление бинарных деревьев в связной памяти. Прошитые деревья
- •Формирование бинарного дерева.
- •Применение бинарных деревьев в алгоритмах поиска.
- •Операция включения в сд типа бинарное дерево.
- •Операция исключения из бинарного дерева.
- •Представление бинарного дерева в прямоугольной памяти.
- •Применение бинарных деревьев.
- •Сд типа граф.
- •Представление графа в памяти эвм.
- •Алгоритмы прохождения графа.
- •Топологическая сортировка.
- •Организация данных во внешней памяти. Типы и характеристики устройств внешней памяти.
- •Сд типа последовательный файл.
- •Сд типа файл прямого доступа.
- •Сд типа индексно-последовательный файл.
- •Сд типа хеш-файл.
- •Внешняя сортировка.
- •Алгоритм прямого слияния.
- •Многофазная сортировка.
- •Сущность базы данных. Системы управления базами данных.
- •Общая структура субд.
- •Реляционная модель субд.
- •Язык реляционной алгебры.
Алгоритм сортировки Хоара (стек используется для хранения границ сортируемой области в таблице):
Включить в стек начало и конец сортируемой таблицы.
Исключить из стека адрес конца сортируемой области (В). Если стек пуст, то сортировка окончена.
Исключить из стека адрес начала сортируемой области (А).
Выбираем ключ-разделитель в сортируемой области (при этом используем тот или иной алгоритм).
Размещаем меньшие ключи до разделителя, а большие – после него. Адрес разделителя – С.
Если А < (С-1), то записываем в стек адрес А и (С-1).
Если (С+1) < В, то записываем в стек начало (С+1) и конец сортируемой области В и переходим к п.2.
Стек используется при разработке компиляторов.
Например, вычисление арифметических выражений. Имеем некоторое выражение: (А+В)С. Это выражение в инфиксной записи. Необходимо перевести его в постфикс (польскую запись): А В + С . С помощью стека выражение вычисляется за один проход.
Пример: Имеем выражение (5 + 3) 7 + 2 4. Преобразуем его к виду 5 3 + 7 2 4 +
< > - стек. Заносим в стек цифры и когда появляется операция, то выполняем ее над занесенными в стек элементами: < > < 5 > < 5 3 > < 8 > < 8 7 > …
Cтеки оказали влияние и на архитектуру ЭВМ, послужили основой для стековых машин. В такой ЭВМ аккумулятор выполнен в виде стека, позволяющего расширить спектр безадресных команд.
д, т.е. команд, не требующих явных заданий адресов операндов. Следствием использования стека является увеличение скорости обработки.
Сд типа очередь.
О
Искл.
(“голова”)
Вкл.
Искл.
Вкл. (“хвост”)
При реализации очереди рассматриваются очередь как отображение на массив (полустатическая реализация) и очередь как отображение на список.
Совокупность операций, определяющих структуру типа очередь:
Операция инициализации.
Операция включения элемента в очередь.
Операция исключения элемента из очереди.
Операция проверки: очередь пуста / очередь не пуста.
Операция проверки: очередь переполнена / очередь не переполнена.
В последовательной памяти очередь имеет следующий вид:
1
N
слот
Uk 1
Uk 2
Здесь: Uk 1 – указатель на “голову” (начало) очереди, Uk 2 – указатель на “хвост” (конец) очереди.
Чтобы избежать переполнения, рациональней использовать кольцевую очередь. При этом Uk 1 > Uk 2 или Uk 2 > Uk 1. В случае же если очередь не кольцевая, то всегда Uk 2 > Uk 1. Если очередь пуста или переполнена, то Uk 1 = Uk 2.
Пусть n – текущее состояние очереди, а N – количество элементов в очереди, тогда имеем условие 0 n N и значение n может являться условием проверки состояния очереди. Операция включения возможна, если n < N, а операция исключения, если n > 0. В случае кольцевой очереди при операции модуля указатели будут меняться следующим образом: Uk 1 = Uk 1 mod N + 1, Uk 2 = Uk 2 mod N + 1.
Схема на физическом уровне СД типа очередь выглядит следующим образом:
Дескриптор:
Условные обозначения |
Название очереди |
Нижний адрес очереди |
|
Верхний адрес очереди |
|
Указатель начала очереди |
|
Указатель конца очереди |
|
Свойства элементов очереди |
Применение очереди:
Очередь используется при передаче данных из оперативной во вторичную память (при этом происходит процедура буферизации: накапливается блок и передается во вторичную память). Наличие буфера обеспечивает независимость взаимодействия процессов между производителем и потребителем (ранжирование задач пользователя). Задачи разделяются по приоритетам: 1) задачи, решаемые в режиме реального времени (высший приоритет) (очередь 1); 2) задачи, решаемые в режиме разделения времени (очередь 2); задачи, решаемые в пакетном режиме (фоновые задачи) (очередь 3). Очереди выполняются последовательно.