Алгоритмы и структуры данных на С++. Аксёнова Е.А - 47 стр.

UptoLike

4.2. Реализация алгоритмов работы с бинарными деревьями 47
template<class DataT> class tree
{
DataT info;
tree *llink;
tree *rlink;
public:
tree *root; // корень дерева
tree(){root=NULL;}; // конструктор
void in(tree<DataT> *&t); // ввод дерева
void btree1(tree<DataT> *t);
void btree2(tree<DataT> *t);
void btree3(tree<DataT>*t);
};
// Ввод дерева в прямом порядке
template<class DataT>void tree<DataT>::in(tree<DataT> *&t)
{
DataT c;
cin>>c;
if(c!=’.’)
{
t=new tree<DataT>;
t->info=c;
in(t->llink);
in(t->rlink);
)
else t=NULL;
}
// Рекурсивная реализация обхода в обратном порядке
template<class DataT>void tree<DataT>::btree1(tree<DataT> *t)
{
if(t!=NULL)
{
btree1(t->llink);
cout<<t->info;
btree1(t->rlink);
}
}
4.2.   Реализация алгоритмов работы с бинарными деревьями    47


template class tree
 {
      DataT info;
      tree *llink;
      tree *rlink;
   public:
      tree *root;                 // корень дерева
      tree(){root=NULL;};         // конструктор
      void in(tree *&t);   // ввод дерева
      void btree1(tree *t);
      void btree2(tree *t);
      void btree3(tree*t);
 };

// Ввод дерева в прямом порядке
templatevoid tree::in(tree *&t)
 {
   DataT c;
   cin>>c;
   if(c!=’.’)
     {
       t=new tree;
       t->info=c;
       in(t->llink);
       in(t->rlink);
     )
   else t=NULL;
 }

// Рекурсивная реализация обхода в обратном порядке
templatevoid tree::btree1(tree *t)
 {
   if(t!=NULL)
      {
        btree1(t->llink);
        cout<info;
        btree1(t->rlink);
      }
 }