- •Понятие о структуре данного. Уровни представления структур данных.
- •Классификация сд в программах пользователя и в памяти эвм
- •Сд в оперативной памяти
- •Сд типа массив.
- •Сд типа запись (прямое декартово произведение).
- •Сд типа таблица.
- •Операции над таблицей:
- •Временная сложность алгоритмов.
- •Сд типа хеш-таблица.
- •Операция включения элемента в таблицу.
- •Операция исключения элемента из таблицы:
- •Сортировки. Улучшенные методы сортировок.
- •Классификация задач по временной сложности.
- •Сд типа стек.
- •Алгоритм сортировки Хоара (стек используется для хранения границ сортируемой области в таблице):
- •Сд типа очередь.
- •Связное распределение памяти.
- •Сд типа линейный односвязный список.
- •Сд типа указатель.
- •Статические и динамические переменные.
- •Сд типа циклический линейный список.
- •Сд типа двусвязный линейный список.
- •Сд типа дек.
- •Многосвязные списки.
- •Средства объектно-ориентированного программирования.
- •Объекты и свойства инкапсуляции.
- •Наследование и переопределение.
- •Полиморфизм. Виртуальные методы.
- •Динамические объекты. Деструкторы.
- •Обработка ошибок при работе с динамическими объектами.
- •Модули, экспортирующие объекты.
- •Нелинейные структуры данных.
- •Сд типа дерево.
- •Представление деревьев в связной памяти эвм.
- •Алгоритмы прохождения деревьев в глубину и в ширину.
- •Представление деревьев в виде бинарных.
- •Представление бинарных деревьев в связной памяти. Прошитые деревья
- •Формирование бинарного дерева.
- •Применение бинарных деревьев в алгоритмах поиска.
- •Операция включения в сд типа бинарное дерево.
- •Операция исключения из бинарного дерева.
- •Представление бинарного дерева в прямоугольной памяти.
- •Применение бинарных деревьев.
- •Сд типа граф.
- •Представление графа в памяти эвм.
- •Алгоритмы прохождения графа.
- •Топологическая сортировка.
- •Организация данных во внешней памяти. Типы и характеристики устройств внешней памяти.
- •Сд типа последовательный файл.
- •Сд типа файл прямого доступа.
- •Сд типа индексно-последовательный файл.
- •Сд типа хеш-файл.
- •Внешняя сортировка.
- •Алгоритм прямого слияния.
- •Многофазная сортировка.
- •Сущность базы данных. Системы управления базами данных.
- •Общая структура субд.
- •Реляционная модель субд.
- •Язык реляционной алгебры.
Топологическая сортировка.
Топологическая сортировка (ТС) вершин орграфа G заключается в присвоении его вершинам чисел 1, 2,…, | x |, причем должно выполняться следующее условие для орграфов: если имеется дуга (xi, xj), то j > i (i j).
Рассмотрим случай для ацикличного графа:
4 3
5
2
6
2 4
3
1
6
5
Поиск ведем на
множестве узлов графа:
Топологически неотсортированный граф
Топологически отсортированный граф
1 2 3 4 5 6
Топологическая сортировка может быть использована:
При организации толкового словаря. Все понятия при этом располагаются в линейную структуру, т.е. понятия, которые используют первичные понятия (аксиоматические), находились бы ниже.
При организации программных систем. Здесь рассматривается совокупность взаимосвязанных процедур (одна процедура вызывает другую, та, в свою очередь, третью, и т.д.). Т.е. процедуры распределяются таким образом, чтобы не было ссылок вперед.
Рассмотрим алгоритм топологической сортировки. Идея его заключается в том, что осуществляется поиск такой вершины, из которой не выходит ни одна дуга. Такой вершине присваивается | x |. Затем эту вершину выбрасывают вместе с дугами и опять осуществляют поиск на | x | - 1, …
Введем массив LABEL размерностью | x |. Он будет обладать следующими свойствами: если вершина не выброшена, то значение LABEL(x)=0; если есть дуга (xi, xj), то LABEL(x j) > LABEL(x i).
Для поиска вершины, из которой не выходят дуги, используют алгоритм прохождения графа в глубину:
x X выполнить: (Num(x)=1; LABEL(x)=0;)
C = | x | + 1;
x X выполнить: если Num(x)=1, то DM(x);
Процедура DM(v);
начало
Num(V)=0;
t M(V) выполнить: если Num(t)=1, то DM(t);
конец;
C = C – 1;
LABEL(V) = C;
Организация данных во внешней памяти. Типы и характеристики устройств внешней памяти.
В
регистры
КЭШ основная вторичная архивная
память процессора
внешняя
память
Внешняя память предназначена для больших объемов данных. Данные, находящиеся во внешней памяти, должны записываться в основную память, т.к. процессор обрабатывает только те данные, которые находятся в основной памяти. Минимальная единица данных, которая может передаваться между внешней и основной памятью, называется физической записью или блоком. Для организации внешней памяти используются устройства внешней памяти различного типа. Например, устройства, использующие механическое перемещение называют электромеханическими устройствами; устройства, не использующие перемещение, а основанные на электронном типе – электронными устройствами.
Основными характеристиками устройств внешней памяти являются:
емкость;
время доступа;
скорость передачи данных;
форма доступа;
экономическая характеристика (стоимость хранения в расчете на одну единицу данных).
Время доступа – длительность интервала времени от момента инициирования операции ввода / вывода, до начала передачи данных. Скорость передачи данных измеряется числом единиц данных, передаваемых между устройствами внешней и основной памяти (1 бод = 1 символ / 1 c). Форма доступа – порядок, в котором можно записывать или читать из устройства внешней памяти. Доступ может быть последовательным, прямым, и т.д. При прямом доступе время доступа не зависит от размерности структуры.
Накопители на магнитных дисках.
Для накопителей такого типа имеется три основные координаты: дорожка (цилиндр) (радиальное измерение), сторона диска (вертикальное измерение), сектор внутри дорожки (измерение по окружности). С точки зрения операционной системы, диск рассматривается как одномерный массив. На диске могут возникать зазоры из-за того, что при прекращении подачи информации перемещение диска продолжается по инерции. Считывание и запись на диск осуществляются полными блоками. Когда работаем с данными, их можно записывать и считывать в одном объеме, но при работе применяется процедура блокирования (разбиения информации по блокам). Имеются специальные буферные области, предназначенные для блокирования и деблокирования информации. Необходимо заметить, что работа программы и процесс блокирования-деблокирования осуществляются параллельно.
Р
Таблица размещения файлов
данные
5 6 7
конец
программа начальной загрузки
корневой каталог файлов
1 2 3 4 5 6 7 8
таблица размещения файлов
Корневой каталог содержит: имя файла, номер первого кластера. Кластер – минимальная порция информации, включающая несколько сегментов.
Таблица размещения файлов содержит номера следующего кластера для данного файла, причем все кластеры в таблице пронумерованы.
Файл на физическом уровне – наименованная область памяти на внешнем носителе (динамическая последовательность кластеров). Файл на логическом уровне – линейная динамическая структура.