Добавил:
FluffyUnicorn
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Структуры данных примеры / Дерево / tree_search
.cpp#include <iostream>
#include <conio.h>
using namespace std;
class node
{
public:
int data;
node * left, * right;
node()
{
data=0;
left=right=NULL;
}
node (int x)
{
// node * v = new node;
data=x;
left=right=NULL;
// return v;
}
void sim (node * p)
{
if (p->left) sim (p->left);
cout<<p->data<<" ";
if (p->right) sim (p->right);
}
node *add_node (node *t, int x) //поиск и вставка
{
node *p=t, *q=NULL, *v;
while (p)
{
if (p->data==x) return p;
q=p;
if (x<p->data) p=p->left;
else p=p->right;
}
v=new node(x);
if (q==NULL) return v;
if (x<q->data) q->left=v;
else q->right=v;
return v;
}
};
class Tree
{
node * tree;
void del (node * t)
{
if (t->left) del(t->left);
if (t->right) del(t->right);
delete t;
}
public:
Tree() {tree=NULL;}
~Tree() {del(tree);}
void print_sim (void) {tree->sim (tree);}
void insert_node (int x) {tree->add_node (tree, x);}
};
main()
{
Tree t;
int k;
cout<<"Enter int, 0 for quit\n";
do
{
cin>>k;
if (!k) break;
t.insert_node(k);
}
while (k);
t.print_sim();
getch();
return 0;
}
Соседние файлы в папке Дерево