#include <iostream>
using namespace std;
//Структура для описания узла
struct Node {
int key;
Node* left;
Node* right;
};
//Класс для описания дерева
class MyTree {
public:
Node* Head;
void AddNode(int key);
void GetTree(Node* &N);
MyTree();
//Реализация метода добавления элемента в дерево
void MyTree::AddNode(int key) {
Node* x = Head;
Node* y = nullptr;
while (x!=nullptr){
y = x;
if (key > x->key)
x = x->right;
else
x = x->left;
}
Node* tmp = new Node;
tmp->key = key;
tmp->left = nullptr;
tmp->right = nullptr;
if (y == nullptr)
Head = tmp;
if (key > y->key)
y->right = tmp;
y->left = tmp;
//Реализациия метода получения дерева
void MyTree::GetTree(Node* &N) {
if (N != nullptr) {
GetTree(N->left);
GetTree(N->right);
cout << N->key << ";";
//Реализация конструктора
MyTree::MyTree() {
Head = nullptr;
int main()
{
int n;
cout << "Input N:";
cin >> n;
MyTree T;
for(int i=1;i<=n;i++)
T.AddNode(rand()%100);
T.GetTree(T.Head);
Объяснение:
#include <iostream>
using namespace std;
//Структура для описания узла
struct Node {
int key;
Node* left;
Node* right;
};
//Класс для описания дерева
class MyTree {
public:
Node* Head;
void AddNode(int key);
void GetTree(Node* &N);
MyTree();
};
//Реализация метода добавления элемента в дерево
void MyTree::AddNode(int key) {
Node* x = Head;
Node* y = nullptr;
while (x!=nullptr){
y = x;
if (key > x->key)
x = x->right;
else
x = x->left;
}
Node* tmp = new Node;
tmp->key = key;
tmp->left = nullptr;
tmp->right = nullptr;
if (y == nullptr)
Head = tmp;
else
if (key > y->key)
y->right = tmp;
else
y->left = tmp;
}
//Реализациия метода получения дерева
void MyTree::GetTree(Node* &N) {
if (N != nullptr) {
GetTree(N->left);
GetTree(N->right);
cout << N->key << ";";
}
}
//Реализация конструктора
MyTree::MyTree() {
Head = nullptr;
}
int main()
{
int n;
cout << "Input N:";
cin >> n;
MyTree T;
for(int i=1;i<=n;i++)
T.AddNode(rand()%100);
T.GetTree(T.Head);
}
Объяснение: