Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Laboratornaya_rabota_5 (1)

.doc
Скачиваний:
4
Добавлен:
19.01.2023
Размер:
34.82 Кб
Скачать

Лабораторная работа 6.

Произвольные структуры данных. Деревья.

1. Создайте модуль EvalTrees (описанный в тексте пособия Г.А. Макеева).

2. Для заданного списка чисел и определенных операций в дереве вычислений вывести дерево с заданными результатами вычислений (или получить ответ, что это невозможно). Данные по вариантам приведены в таблице.

3 . Определите тип данных для бинарного поискового дерева: data Ord a => SearchTree a = Empty | Branches a (SearchTree a) (SearchTree a) deriving (Show, Eq), запросите и объясните тип функций-конструкторов-данных Empty и Branches, постройте с помощью этих функций простейшие деревья.

4. Реализуйте в деревьях поиска функции добавления элементов, поиска с выводом (список просмотренных вершин до нужного элемента), проверки сбалансированности дерева и построения идеально сбалансированного дерева. Элементы дерева указаны в вариантах, достаточно 10-15 элементов.

5. Определите тип данных для предложенного в варианте объекта.

6. Реализуйте для определенного в зад.1 типа указанную функцию, переопределив ее. Придумайте и реализуйте еще 2-3 подходящие функции для работы с объектами вашего типа.

Вариант 1.

2. Для списка чисел [2,5,8,9] найти с помощью дерева вычислений

a) 11.2

b) наименьшее по модулю число

4. Список химических элементов.

5. Квадратная матрица порядка n.

6. Функция умножения (матрицы на матрицу).

Вариант 2.

2. Для списка чисел [1,2,4,6] найти с помощью дерева вычислений

a) 15

b) любой результат с делением на 0.

4. Список простых чисел.

5. Прямоугольный треугольни к.

6. Функция сравнения треугольников по площади.

Вариант 3.

2. Для списка чисел [3,4,6,7] найти с помощью дерева вычислений

a) -0.25

b) наименьшее целое число

4. Список чисел Фибоначчи.

5. Вектор на плоскости.

6. Функцию умножения (скалярного).

Вариант 4.

2. Для списка чисел [1,3,6,8] найти с помощью дерева вычислений

a) 16

b) любое рациональное число со знаменателем 2

4. Список студентов вашей группы.

5. Конус.

6. Функцию вычитания для конусов с одинаковым углом при вершине, возвращающую объем получаемого усеченного конуса.

Вариант 5.

2. Для списка чисел [2,4,5,7] найти с помощью дерева вычислений

a) -7

b) наибольшее нечетное целое число

4. Список автомобильных номеров.

5. Прямая на плоскости.

6. Функцию сложения с числом, подразумевающую поворот прямой на заданное число радиан относительно оси абсцисс.

Вариант 6.

2. Для списка чисел [3,4,5,6] найти с помощью дерева вычислений

a) 2

b) любое рациональное число со знаменателем 3

4. Список степеней двойки.

5. Тетраэдр.

6. Функцию деления на число, позволяющего получать тетраэдр с полной площадью поверхности, уменьшенной в заданное число раз.

Вариант 7.

2. Для списка чисел [1,2,4,7] найти с помощью дерева вычислений

a) -1

b) наибольшее четное число

4. Список названий групп вашего факультета.

5. Окружность на плоскости.

6. Функцию умножения, позволяющего вычислить площадь общей части двух заданных окружностей.

Вариант 8.

2. Для списка чисел [2,3,5,8] найти с помощью дерева вычислений

a) 22

b) любое рациональное число со знаменателем 4

4. Список аббревиатур изучаемых/изученных вами курсов.

5. Цилиндр.

6. Функцию умножения на число, подразумевающую умножение только высоты цилиндра.

Вариант 9.

2. Для списка чисел [1,4,5,6] найти с помощью дерева вычислений

a) -4

b) наименьшее по модулю нечетное целое число

4.Список телефонных номеров.

5. Алгебраический многочлен переменной х.

6. Функцию сложения многочленов.

Вариант 10.

2. Для списка чисел [2,3,5,6] найти с помощью дерева вычислений

a) 1/6

b) любое рациональное число со знаменателем 5

4. Список квадратов натуральных чисел.

5. Параллелипипед.

6. Функцию сравнения по общей площади поверхности.