Скачиваний:
15
Добавлен:
18.03.2018
Размер:
1.65 Кб
Скачать
#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;
}
Соседние файлы в папке Дерево