Вы находитесь на странице: 1из 9

ЛАБОРАТОРНАЯ РАБОТА №_30

Тема: РАЗРАБОТКА АЛГОРИТМОВ И ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ


ДИНАМИЧЕСКИХ МАССИВОВ.
Цель работы: формирование и отработка практических навыков в работе с
динамическими массивами; закрепление теоретических знаний по теме.
Задание 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 слов).
Экспериментально определить минимально необходимый объем хэш-
таблицы и число коллизий при построении.