256                       9. ,    STL

  gentreel.cpp

//   

template <class T> class gen_tree;   //
//

template <class T>

class bnode {                        // 

private:

friend class gen_tree<T>;

bnode<T>* left;                    //
bnode<T>* right;                   //
         data;                    //
int       count;                   //
bnode( d, bnode<T>* 1, bnode<T>* r) :

data(d), left(l), right(r), count(1) { }
void print() const

{ cout  data  " : "  count  '\t'; }

    data  .     left
 right   THnabnode<T>*.   ,
 .   bnode<T>: : print () ,  
operator (),    .    , -
     .

template <class T>

class gen_tree {// 

public :

gen_tree ( ) { root =0; }

void insert( d) ;

 find(T d) const { return (find(root, d)); }

void print() const { print(root); }
private:

bnode<T>* root;

 find(bnode<T>* r,  d) const;

void print(bnode<T>* r) const;

};

   gen_tree<T>    data   
   insert (),   -
  .

  () ()    .
   .        
   ==  <.    -
  const char*,    .

#include<string.h>
template <class T> // 