-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsiaod_4_luzinsan.cpp
61 lines (56 loc) · 3.08 KB
/
siaod_4_luzinsan.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include "NodeTree.h"
#include <fstream>
/*
10. Напишите программу, которая формирует бинарное дерево поиска,
выводит построенное дерево на экран.
Данные для построения дерева могут вводиться:
1) с клавиатуры,
2) из файла или
3) генерироваться с помощью генератора случайных чисел.
Выбор способа ввода данных выполняется во время работы программы.
В построенном дереве необходимо подсчитать число элементов,
больше заданного, которое вводится с клавиатуры.
Также реализовать возможность удаления произвольного элемента сформированного дерева.
Для реализации АТД «Дерево» используйте динамическое распределение памяти.
Перед завершением работы программы освободить занимаемую динамическую память.
Для этого используйте поэлементное удаление элементов динамической структуры данных.
*/
int getInt(int left, int right);
int main()
{
setlocale(LC_ALL, "Rus");
std::cout << "\n\tВ программе формируется бинарное дерево поиска:"
<< "\n\tВыберите способ построения дерева (1,2 или 3):"
<< "\n\t1) ввод с клавиатуры;"
<< "\n\t2) считывание из файла;"
<< "\n\t3) генерация заданного количества элементов рандомными значениями\n\t";
int choice = getInt(1, 3);
NodeTree BinaryTree;
switch (choice)
{
case 1://ввод с клавиатуры
BinaryTree.inputDataTree();
break;
case 2://считывание из файла
BinaryTree.inputFileTree();
break;
case 3://заполнение рандомом
BinaryTree.randomTree();
break;
default:
std::cout << "\n\tУпс. Что-то пошло не так...\n\t";
}
std::cout << "\n";
BinaryTree.PrintTree();
std::cout << "\n\tПодсчитать число элементов, больше заданого. Введите заданный элемент: ";
int N;
N = getInt();
std::cout << "\n\tКоличество элементов, больших заданного: " << BinaryTree.countGreater(N) << std::endl;
std::cout << "\n\tВведите элемент, который хотели бы удалить:\t";
N = getInt();
BinaryTree.Delete(N);
std::cout << "\n";
BinaryTree.PrintTree();
return 0;
}