- •Министерство общего и профессионального образования Российской Федерации
- •Содержание
- •Введение
- •1.Структуры данных
- •1.1 Треугольные массивы 2
- •1.2 Списки 3
- •Простые списки
- •Неупорядоченные списки
- •Связанные списки
- •1.3 Стеки 6
- •1.4 Очереди. Деки. 7
- •1.5 Деревья 8
- •Обход деревьев
- •Упорядоченные деревья
- •Добавление элементов
- •Сбалансированные деревья
- •Красно-черные деревья 12
- •Деревья со случайным поиском 13
- •2.Сортировка
- •2.1 Внутренняя сортировка 16
- •Сортировка путем вставок
- •Обменная сортировка
- •Метод пузырька
- •Параллельная сортировка Бэтчера
- •Алгоритм сортировки Бетчера Быстрая сортировка
- •Модификации метода быстрой сортировки
- •Сортировка посредством выбора
- •Фаза 2: сортировка
- •Сортировка методом слияния 18
- •Сортировка методом распределения
- •Поразрядная сортировка
- •Поразрядная сортировка для списков
- •2.2 Внешняя сортировка 19
- •Прямое слияние
- •Естественное слияние
- •Сбалансированное многопутевое слияние
- •3.Поиск
- •3.1 Последовательный поиск 20
- •3.2 Поиск путем сравнения ключей
- •Поиск в упорядоченной таблице Бинарный поиск
- •3.3 Хеширование 21
- •4.Сетевые алгоритмы 22
- •4.1 Представления сетей
- •Управление узлами и связями
- •4.2 Обход сети
- •4.3 Наименьший каркас дерева
- •4.4 Кратчайший путь
- •Расстановка меток
- •Коррекция меток
- •5.Задачи для лабораторных работ
- •Заключение
- •Библиографический список
5.Задачи для лабораторных работ
Составить программу, решающую системы линейных уравнений методом Гаусса. Исходная матрица уравнения является треугольной. Для хранения структуры данных использовать одномерные массивы.
Примечание: Программа не должна оперировать с двумерными массивами
Написать программу, производящую арифметические операции с помощью польской бесскобочной записи. Для хранения чисел использовать стеки.
Примечание: Обычная запись числа: (10+2)*5. Польская бесскобочная запись для данного выражения имеет вид: 10 2 + 5 *, где символом обозначается помещение элемента в стек. Программа должная выглядеть следующим образом. На экране в любой момент времени можно ввести либо какое-либо число, либо арифметическую операцию (+,-,*,/). Если вводится число, то оно автоматически помещается в стек. Если вводится какая-либо арифметическая операция, то должны извлечься два последних числа из стека, произвестись над ними арифметические действия и затем результат помещается в стек и выводится на экран. Необходимо предусмотреть возможность предупреждения пользователя, когда он собирается выполнить какое-либо арифметическое действие над двумя числами, а в стеке только одно число, например: 10 2 + 5 * - +
Написать программу, которая умеет вставлять, удалять элементы из бинарного упорядоченного дерева, а также отображать текущую структуру дерева.
Примечание: Отображать структуру дерева можно в любом виде, однако самым простым способом представляется отображение дерева в режиме каталога
На основе программы 3 реализовать один из алгоритмов балансировки деревьев.
Примечание: Балансировка дерева должна осуществляться на момент вставки. Удаление элементов из сбалансированного дерева можно опустить. Также в программе должна быть предусмотрена возможность отображения текущей конфигурации дерева
Реализовать сравнительный анализ не менее 5 способов сортировки, которые принадлежат не менее четырем семействам методов (сортировка путем вставок, обменная сортировка, сортировка посредством выбора, сортировка методом слияния, сортировка методом распределения).
Примечание: Для сравнения методов должен использоваться один и тот же массив случайных чисел. Количество элементов в массиве должно задаваться с клавиатуры. Результатом работы программы должна быть таблица, в которой приводятся реализованные методы сортировок и затраченное ими машинное время на выполнение алгоритма.
Написать программу, реализующую сравнительный анализ трех способов последовательного поиска
Написать программу, на вход которой подается текстовый файл. Входной текстовый файл должен быть разобран по словам, которые необходимо поместить в хеш-таблицу. Программа должна уметь запрашивать слова у пользователя и отвечать на вопрос: есть ли текущее слово в тексте или оно отсутствует
Написать программу, находящую минимальное остовное дерево для графа
Написать программу, определяющую кратчайший путь в графе от выбранной вершины до всех остальных с помощью любого известного алгоритма
Написать программу, определяющую максимальный поток в графе.
