
- •Лабораторные работы по программированию "Структуры и алгоритмы обработки данных"
- •Задание к лабораторной работе
- •Варианты задания
- •Методические указания по выполнению задания
- •Задание к лабораторной работе
- •Варианты задания
- •Методические указания по выполнению задания
- •Задание к лабораторной работе
- •Варианты задания
- •Методические указания по выполнению задания
- •Задание к лабораторной работе
- •Варианты задания
- •Методические указания по выполнению задания
- •Задание к лабораторной работе
- •Варианты задания
- •Методические указания по выполнению задания
- •Методические указания по выполнению задания (окончание)
- •Задание к лабораторной работе
- •Варианты задания
- •Методические указания по выполнению задания
- •Литература
- •Хранение данных в файлах
- •Простая организация данных
- •Ускорение операций с файлами
- •Хешированные файлы
- •Хешированные файлы (окончание)
- •Индексированные файлы
- •Индексированные файлы (окончание)
- •Несортированные файлы с плотным индексом
- •Внешние деревья поиска
- •Разветвленные деревья поиска
- •Создание пустого б-дерева
- •Создание пустого б-дерева (продолжение)
- •Создание пустого б-дерева (продолжение)
- •Создание пустого б-дерева (окончание)
- •Сравнение методов
- •Формат атд
- •Формат атд (окончание)
- •Вариант 8:
- •Атд "Хеш-таблица с цепочками коллизий"
- •Атд "Хеш-таблица с цепочками коллизий" (окончание)
- •Атд "Хеш-таблица с открытой адресацией"
- •Атд "Хеш-таблица с открытой адресацией" (окончание)
- •Атд "Итератор"
- •Описание методики тестирования хеш-функции (определение статистики c2)
- •Описание хеш-функций
- •Результаты тестирования хеш-функции
- •Описание методики тестирования трудоемкости операций
- •Описание методики тестирования трудоемкости операций (окончание)
- •Сравнительный анализ теоретических и экспериментальных оценок эффективности операций
- •Литература
Варианты задания
1. АТД "АВЛ - дерево", как модификация АТД "BST-дерево". Алгоритмы операций АТД реализуются в рекурсивной форме.
2. АТД "АВЛ - дерево", как модификация АТД "BST-дерево". Алгоритмы операций АТД реализуются в нерекурсивной форме.
3. АТД " RB - дерево", как модификация АТД "BST-дерево". Алгоритмы операций АТД реализуются в рекурсивной форме.
4. АТД " RB - дерево", как модификация АТД "BST-дерево". Алгоритмы операций АТД реализуются в нерекурсивной форме.
5. АТД "Рекурсивное 2-3 дерево". Алгоритмы операций АТД реализуются в рекурсивной форме.
6. АТД "Нерекурсивное 2-3 дерево". Алгоритмы операций АТД реализуются в нерекурсивной форме.
7. АТД " Рандомизированное дерево", как модификация АТД "BST-дерево". Алгоритмы операций АТД реализуются в рекурсивной форме.
8. АТД "Рандомизированное дерево", как модификация АТД "BST-дерево". Алгоритмы операций АТД реализуются в нерекурсивной форме.
Методические указания по выполнению задания
1. Для АТД "Сбалансированное двоичное дерево поиска" разрабатываются формат АТД и шаблонный класс - контейнер.
2. Коллекции "Сбалансированное двоичное дерево поиска", использующие рандомизированне дерево, AVL - дерево или RB - дерево, разрабатываются как модификация класса "BST - дерево" с использованием технологии наследования классов. Коллекция на базе 2-3 - дерева разрабатывается, как самостоятельный класс.
3. Для тестирования разработанного класса - контейнера разрабатываются две программы: программа тестирования операций через меню, и программа тестирования трудоёмкости операций поиска, вставки и удаления.
4. Тестирование операций через меню выполняется для небольшого размера дерева (до 20 элементов). Тип данных, хранящихся в нём, задаётся с клавиатуры перед началом тестирования. После выполнения операций необходимо вывести на экран содержимое дерева с помощью операции вывода структуры дерева. При выводе узла дерева необходимо отражать хранящийся в нём ключ поиска и дополнительный параметр, используемый для балансировки узла.
5. Перед тестированием эффективности операций для обеих коллекций задаются тип данных, и размер. Размер деревьев варьируется в пределах от 10 до 100 000 элементов. После тестирования на экран выводятся размер деревьев и средняя трудоёмкость операций поиска, вставки и удаления (среднее число пройденных узлов дерева).
Задание к лабораторной работе
Цели работы: Изучение методов построения таблиц с постоянным временем доступа к элементам. Освоение технологии реализации таблиц на примере АТД "Хеш - таблица".
Задание к лабораторной работе:
1. Спроектировать, реализовать и провести тестовые испытания АТД "Хеш-таблица" для коллекции, содержащей данные произвольного типа. Тип коллекции задаётся клиентской программой. Коллекция проектируется в двух вариантах:
АТД "Хеш-таблица с цепочками коллизий",
АТД "Хеш-таблица с открытой адресацией",
Интерфейс АТД "Хеш-таблица" включает следующие операции:
опрос размера таблицы,
опрос пустоты таблицы,
очистка таблицы,
поиск элемента по ключу,
вставка элемента по ключу,
удаление элемента по ключу,
итератор для доступа к элементам таблицы с операциями:
1) установка на начало таблицы,
2) проверка конца таблицы,
3) доступ к данным текущего элемента таблицы,
4) переход к следующему элементу таблицы,
Для тестирования коллекций интерфейс АТД "Хеш-таблица" включает дополнительные операции:
вывод структуры хеш-таблицы на экран,
опрос числа проб, выполненных операцией.
2. Выполнить отладку и тестирование всех операций АТД "Хеш-таблица с цепочками коллизий" и АТД "Хеш-таблица с открытой адресацией" с помощью меню операций.
3. Получить экспериментальную оценку качества хеш-функции 2, усреднённую по нескольким экспериментам.
4. Выполнить сравнительное тестирование средней трудоёмкости операций поиска, вставки и удаления для коллекций "Хеш-таблица с цепочками коллизий", и "Хеш-таблица с открытой адресацией" в зависимости от коэффициента заполнения?
5. Провести сравнительный анализ теоретических и экспериментальных показателей трудоёмкости операций.
6. Составить отчёт по лабораторной работе. Отчёт должен содержать следующие пункты:
1) титульный лист,
2) цель лабораторной работы,
3) общее задание (пункты 1 - 5) и вариант задания,
4) формат АТД,
5) определение шаблонного класса для коллекции "Хеш-таблица", предназначенное для клиентской программы,
6) описание методики получения экспериментальной оценки 2 и полученная оценка 2, усреднённая по нескольким экспериментам.
7) описание методики тестирования трудоёмкости операций,
8) таблицы и графики с полученными оценками трудоёмкости операций. Должны быть приведены графики трудоёмкости для операций поиска, вставки и удаления для АТД "Хеш-таблица с цепочками коллизий" и АТД "Хеш-таблица с открытой адресацией" (графики обеих коллекций совмещены в одной системе координат),
9) сравнительный анализ теоретических и экспериментальных оценок эффективности операций АТД,
10) выводы,
11) список использованной литературы,
12) приложение с текстами программ:
полное определение классов и текстов методов класса,
текст программы получения оценки 2,
текст программы тестирования трудоёмкости операций АТД.