Тема: РАЗРАБОТКА АЛГОРИТМОВ И ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ
ДИНАМИЧЕСКИХ МАССИВОВ. Цель работы: формирование и отработка практических навыков в работе с динамическими массивами; закрепление теоретических знаний по теме. Задание 1. Записать все элементы массива X= (x1, x2, …, xn), удовлетворяющие условию xiЄ[1,2], подряд в массив Y= (y1, y2, …, yn). Определить минимальный элемент массива X. Задание 2. Переписать элементы массива целых чисел X= (x1, x2, …, xn) в обратном порядке в массив Y=(y1, y2, …, yn). Вычислить количество четных, нечетных и нулевых элементов массива Y.
Задание 3. Во входном файле расположена последовательность целых чисел.
Определите, имеются ли среди этих чисел два совпадающих? ЛАБОРАТОРНАЯ РАБОТА №31
Тема: РАЗРАБОТКА АЛГОРИТМОВ И ПРОГРАММ С
ИСПОЛЬЗОВАНИЕМ ДИНАМИЧЕСКИХ СТРУКТУР ДАННЫХ.
Цель работы: формирование и отработка практических навыков в работе с
динамическими структурами данных, такими как списки, стеки, очереди и деревья; закрепление теоретических знаний по теме. Лабораторная работа № 32
Тема: Реализация алгоритмов работы с бинарными и сбалансированными
деревьями
Цель работы: исследовать и изучить процедуры, используемые при работе с
бинарными (двоичными) деревьями.
1) Описать процедуру СОРY(Т,Т1), которая строит Т1 - копи ю дерева Т:
Тесты для проверки:
1 копия 2 копия
3 копия
Контрольные вопросы:
1. Что называют бинарным деревом? Дайте определения основным понятиям
дерева
Дерево - это нелинейная связанная структура данных,
характеризуемая следующими признаками: дерево имеет один элемент, на который нет ссылок от других элементов. Этот элемент, или "узел", называется корнем дерева; в дереве можно обратиться к любому элементу путем прохождения конечного числа ссылок (указателей); каждый элемент дерева связан только с одним предыдущим элементом.
2. Как могут быть представлены деревья?
Деревья наиболее удобно представлять в памяти ЭВМ в виде
связанных нелинейных списков. Элемент должен содержать INFO-поле, где содержится характеристика узла. Следующее поле определяет степень исхода узла и количество полей указателей равное степени исхода. Каждый указатель элемента ориентирует данный элемент-узел с его сыновьями. Узлы, в которые входят стрелки от исходного элемента, называются его сыновьями. INFO-поле содержит два поля : поле записи (rec) и поле ключа (key). Ключ задается числом, по ключу определяют место элемента в дереве.
3. Какое дерево называют бинарным? Какое дерево называют полным
бинарным деревом?
Если степень исхода узлов дерева равна 2, то дерево
называется бинарным.
Если степень исхода равна 2 или 0, то - полное бинарное дерево.
4. Перечислите основные операции, которые можно выполнять с деревьями?
1) Процедура создания бинарного дерева
2) Процедуры "обхода" дерева;
3) Процедура поиска по бинарному дереву;
4) Процедура удаления элемента из бинарного дерева;
5) Процедура включения элемента в дерево.
5. Что называют поддеревом?
Идеально сбалансированное дерево - это дерево, в котором левое и
правое поддеревья имеют уровни, отличающиеся не больше, чем на единицу. 6. Какие способы обхода дерева существуют?
1) Обход сверху вниз (корень посещается ранее, чем поддеревья): A, B, C;
2) Слева направо : B, A, C ; 3) Снизу вверх (корень посещается после поддеревьев) : B, C, A .
7. Что такое дерево бинарного поиска?
Назначение этой процедуры в том, чтобы по заданному ключу осуществить поиск узла дерева. Длительность операции поиска (число узлов, которое надо перебрать для этой цели) зависит от структуры дерева. Действительно, дерево может быть вырождено в однонаправленный список (иметь единственную ветвь) - такое дерево может возникнуть, если элементы поступали в дерево в порядке возрастания (убывания) их ключей. 8. Как осуществляется добавление и удаления элемента в дереве? Удаление узла не должно нарушать упорядоченность дерева. При удалении элемента из бинарного дерева с заданным ключом различают три случая : 1) удаляемый узел является листом, в этом случае он просто удаляется, не нарушая этим упорядоченность дерева ; 2) если удаляемый узел имеет только одного сына, то сын перемещается на место удаляемого отца ; 3) если у удаляемого узла 2 сына. В этом случае на место удаляемого отца помещается либо его предшественник в симметричном обходе (обход слева направо), либо его последователь. 9. Можно ли применять бинарный поиск к массивам? Да можно. Лабораторная работа № 33_1
Тема: Хэширование и поиск.
Цель работы: Освоить методы построения хэш-таблиц и поиска с помощью хэш-таблиц.
Задание для самостоятельного решения:
Построить хэш-таблицу методом линейных проб для слов заданного текста. Текст находится в некотором файле (примерно 200 слов). Экспериментально определить минимально необходимый объем хэш- таблицы и число коллизий при построении.