Модульный контроль № 5(семестр 3)
Основные операции над списками
Двунаправленные списки
Исключение и включение элементов
Алгоритм поиска в односвязном списке
Поиск с включением. Использование барьера.
Объединение 2-х списков в один.
Копирование списков.
Разбиение списков на 2 и более.
Топологическая сортировка.
Деревья, представление деревьев, основные операции над ними.
Определение структуры дерева и основные понятия, связанные с деревьями
Бинарные деревья
Построение дерева с равномерно распределенными узлами
Обход бинарного дерева
Дерево поиска
Поиск по дереву с включением
Удаление из дерева поиска
Сбалансированные деревья
Включение в сбалансированное дерево с соблюдением сбалансированности
Удаление из сбалансированного дерева
В-деревья
Модульный контроль № 6(семестр 3)
Алгоритмы сортировки массивов
Понятие о сортировке массивов.
Сортировка простым выбором.
Сортировка простым включением.
Сортировка методом пузырьков.
Сортировка методом двоичного деления.
Шейкер-сортировка.
Сортировка включениями с убывающими приращениями.
Сортировка с помощью дерева.
Сортировка с разделением.
Сортировка файлов
Простое слияние.
Естественное слияние.
Сбалансированное многофазное слияние.
Многофазная сортировка
Формальное описание языков программирования: РБНФ, синтаксические диаграммы
Определение и структура языка
Синтаксис и семантика
Нормальные формы Бэкуса-Наура.
Синтаксические диаграммы.
Примеры задач:
1. N натуральных чисел являются элементами двунаправленного списка L. Вычислить
X1*Xn + X2*Xn-1... + Xn*X1.
2. N натуральных чисел являются элементами двунаправленного списка L. Вычислить
( X1 + Xn )*(X2 + Xn-1)*...*( Xn + X1 ).
3. Считалка. Даны натуральные числа m и n. Предполагается, что n человек встают в круг и получают номера, считая против часовой стрелки, 1, 2, 3,... n. Затем, начиная с первого, также против часовой стрелки отсчитывается m-й человек (поскольку люди стоят по кругу, то за n-м человеком стоит первый). Этот человек выходит из круга, после чего, начиная со следующего, снова отсчитывается m-й человек и так до тех пор пока из всего круга не останется один человек. Определить его номер.
4. Дан файл, содержащий некоторое количество слов. Вывести слова, являющиеся палиндромами (одинаково читается как слева направо, так и справа налево).
5. Используя двунаправленный список, содержащий символы и их шифры, зашифровать текст, содержащийся в файле. 6. Создать двунаправленный список список и разместить в нем случайным образом данные о колоде из 36 карт. Сократить список, убрав из него шестерки.
7. Каталог книг, содержащихся в библиотеке, представлен в виде двунаправленного списка. Написать программу, обрабатывающую такой каталог (включение, исключение книг, поиск нужной книги).
8. Последовательность камней домино представить в виде двунаправленного списка, заполненного произвольным образом. Исключить все дубли, вывести результат.
9. Создать двунаправленный список и разместить в нем в определенном порядке данные о колоде игральных карт. Разработать программу, проводящую перемешивание колоды карт путем сдвига и перестановки ее частей. Результаты перемешивания вывести на печать.
