- •Структуры и алгоритмы обработки данных
- •- Ответ на теоретический вопрос следует начинать с номера и полного названия вопроса;
- •Раздел 1 Алгоритмы, основанные на использовании
- •Тема 1.1 Динамические структуры данных и их организация с
- •Тема 1.2 Списковые структуры: стек, очередь, односвязный и
- •Тема 1.3 Бинарные деревья. Основные операции с бинарными
- •Тема 1.4 Прошитые бинарные деревья, операции с ними
- •Тема 1.5 Красно-черные деревья, операции с ними. Решение
- •Раздел 3 Алгоритмы вычислительной геометрии
- •Тема 3.1 Задачи вычислительной геометрии и методы их
- •Раздел 4 Рандомизированные алгоритмы
- •Тема 4.1 Генерирование случайных чисел, распределенных по
- •Раздел 5 Хеширование и хеш-таблицы
- •Тема 5.1 Функции хеширования. Задачи, решаемые с
- •Задания на домашнюю контрольную работу по учебной дисциплине «Структуры и алгоритмы обработки данных»
Тема 1.3 Бинарные деревья. Основные операции с бинарными
деревьями. Использование деревьев оптимального
поиска для решения задач
Понятие бинарного дерева
Основные операции с бинарными деревьями. Использование деревьев оптимального поиска для решения задач
Литература: [9, с. 149-197]
Тема 1.4 Прошитые бинарные деревья, операции с ними
Понятие прошитого бинарного дерева
Основные операции обработки прошитых бинарных деревьев
Литература: [1, с. 386-401]
Тема 1.5 Красно-черные деревья, операции с ними. Решение
задач с применением деревьев
Понятие красно-черного дерева
Свойства красно-черных деревьев
Основные операции над красно-черными деревьями
Литература: [3, с. 254-271]
Вопросы для самоконтроля
Почему в программах размер памяти под статические переменные должен быть определен на этапе компиляции?
За счет каких ресурсов выделяется память под динамические структуры?
Как располагаются в памяти динамические величины?
Как осуществляется доступ к динамическим структурам из программного кода?
Как связываются между собой элементы динамической структуры?
Какого типа может быть поле данных в динамической структуре?
Почему для обращения к динамической структуре достаточно хранить в памяти адрес ее первого элемента?
Какую структур данных называют списком?
В чем отличие первого элемента однонаправленного (двунаправленного) списка от остальных элементов этого же списка?
В чем отличие последнего элемента однонаправленного (двунаправленного) списка от остальных элементов этого же списка?
Почему при работе с однонаправленным списком необходимо позиционирование на первый элемент списка?
Почему при работе с двунаправленным списком не обязательно позиционирование на первый элемент списка?
В чем принципиальные отличия выполнения добавления (удаления) элемента на первую и любую другую позиции в однонаправленном списке?
В чем принципиальные отличия выполнения основных операций в однонаправленных и двунаправленных списках?
С какой целью в программах выполняется проверка на пустоту однонаправленного (двунаправленного) списка?
С какой целью в программах выполняется удаление однонаправленного (двунаправленного) списка по окончании работы с ним? Как изменится работа программы, если операцию удаления списка не выполнять?
Какую структуру данных называют стеком?
На базе каких структур может быть организован стек?
В чем преимущества и недостатки организации структур в виде стека?
В чем преимущества и недостатки организации структур в виде очереди?
Для моделирования каких реальных задач удобно использовать стек? А для каких очередь?
Какое значение хранит указатель на стек?
Какое значение хранит указатель на очередь?
Какие существуют ограничения на тип информационного поля стеки и очереди?
С какой целью в программах выполняется проверка на пустоту стека и очереди?
При работе со стеком или очередью доступны позиции ограниченного числа элементов. Возможна ли ситуация записи новых элементов стека или очереди на уже занятые собственными элементами участки памяти (запись себя поверх себя)? Ответ обоснуйте.
С какой целью в программах выполняется удаление стека и очереди по окончании работы с ними? Как изменится работа программы, если операцию удаления не выполнять?
Какую структуру данных называют очередью?
Какие данные содержат адресные поля элемента бинарного дерева?
На основании чего в красно-черном дереве самая длинная ветвь от корня к листу не более чем вдвое длиннее любой другой ветви от корня к листу?
Куда может быть добавлен элемент в красно-черное дерево? Вид дерева при этом должен сохраниться.
Каким образом при удалении элемента из красно-черного дерева перекрашиваются узлы?
Почему существует большое количество алгоритмов сортировок?
С какой целью используются простые сортировки, если они характеризуются малой эффективностью?
Чем отличается принцип сортировки по неубыванию (невозрастанию) от сортировки по возрастанию (убыванию)?
На каких наборах исходных данных проявляется эффективность алгоритмов простых сортировок по сравнению друг с другом?
Раздел 2 Использование комбинаторных алгоритмов и
алгоритмов на графах для решения задач
Тема 2.1 Использование алгоритмов генерирования
перестановок, множества всех подмножеств
множества, к-элементных подмножеств множества,
разбиения множества на подмножества для решения
задач
Использование алгоритмов генерирования перестановок, множества всех подмножеств множества, к-элементных подмножеств множества, разбиения множества на подмножества для решения задач
Литература: [5, с. 5-70]; [7, с. 25-65]
Тема 2.2 Задачи, основанные на поиске в ширину и в глубину
в графе
Понятие графа. Основные свойства графов
Способы представления графов в памяти ЭВМ
Поиск в глубину. Поиск в ширину
Литература: [3, с. 436-453]
Тема 2.3 Алгоритмы поиска кратчайших расстояний в графе
Алгоритм поиска кратчайшего пути между парой вершин
Алгоритм поиска кратчайших путей между всеми парами вершин
Литература: [3, с. 479-523]
Тема 2.4 Алгоритмы нахождения максимального потока и
потока минимальной стоимости
Понятие максимального потока
Алгоритм нахождения максимального потока Форда-Фанкерсона
Алгоритм нахождения потока минимальной стоимости
Литература: [3, с. 535-552]
Тема 2.5 Задачи, решаемые полным перебором. Методы
сокращения полного перебора
Общая схема полного перебора. Дерево поиска
Задачи, решаемые полным перебором: задача о коммивояжере, задача о шахматном коне, задача о лабиринте
Методы сокращения полного перебора
Литература: [9, с. 211-228]; [7, с. 79-96]
Тема 2.6 Алгоритмы с возвращением, их реализация
Понятие рекурсии. Вычислительная схема алгоритмов перебора с возвращением
Задача о расстановке ферзей на шахматной доске
Литература: [4, с. 221-231]
Тема 2.7 Динамическое программирование, задачи решаемые
методом динамического программирования
Понятие реккурентного соотношения
Технологии динамического программирования: восходящее динамическое программирование, нисходящее динамическое программирование
Задачи решаемые методом динамического программирования: задача о ранце, числа Фибоначчи, наибольшая общая последовательность
Литература: [3, с. 287-312]; [7, с. 96-105]
Тема 2.8 Метод ветвей и границ
Вычислительная схема метода ветвей и границ
Литература: [9, с. 228-231]; [7, с. 105-109]
Тема 2.9 Жадные алгоритмы
Принцип жадного выбора
Коды Хоффмана. Задача о расписании
Жадный алгоритм поиска кратчайшего пути между двумя вершинами графа
Жадный алгоритм в задаче о сумме элементов подмножества
Литература: [3, с. 313-336]; [6, с. 250-259]
Вопросы для самоконтроля
По каким правилам создаются всевозможные комбинации предметов определенного типа из набора данных?
В каких случаях возможно сформировать перестановки с повторениями?
В чем проявляется рекурсивность метода перебора с возвратом?
Почему полный метод перебора с возвратом гарантирует отыскание всех решений задачи?
Как формируется рекурсивная база метода возвратной рекурсии?
Дайте определение графа и его основным компонентам.
Дайте определение матрице смежности. Как формируется матрица? Примеры
Дайте определение матрице инцидентности. Как формируется матрица? Примеры.
Дайте определение матрице расстояний. Как формируется матрица? Примеры
С какими видами графов работают алгоритмы Дейкстры, Флойда и переборные алгоритмы?
Как от представления графа зависит эффективность алгоритма его обхода?
За счет чего поиск в ширину является достаточно ресурсоемким алгоритмом?
В чем преимущества алгоритмов обхода графа в ширину?
Каким образом в алгоритме перебора с возвратом при обходе графа обрабатывается посещение тупиковых вершин?
