INTERNET
 :
  |    

/

, . /

++.

 
... 17 18 19 20 21 22 23 24 25 26 27 

T data;

public:

void Add(T &a);

T& Min();

BTree();

~BTree(); };

template <class T> void BTree<T>::Add(T &a)

{ if(data==NULL) { data=a; return; } //

if(a>data)

{ if(r==NULL) r=new BTree<T>; r->Add(a); } else //

{ if(l==NULL) l=new BTree<T>; l->Add(a); } } //

template <class T> T& BTree<T>::Min()

{ T* tmp=&data,*tmp2;

if(l!=NULL) {tmp2=&l->Min(); if(*tmp2<*tmp) tmp=tmp2;} //

if(r!=NULL) {tmp2=&r->Min(); if(*tmp2<*tmp) tmp=tmp2;} //

return *tmp; }

template <class T> BTree<T>::BTree()

{ l=NULL; r=NULL; data=0; }//

template <class T> BTree<T>::~BTree()

{ data=0; //

if(l!=NULL) delete l; // -//-

if(r!=NULL) delete r; } // -//-

void main()

{ BTree<long> a; // long-

a.Add(10); a.Add(3); a.Add(210); a.Add(70);//

long k=a.Min(); }

//----------------------------------------------------------------------------

// 8.

// 2.

// 3. ( ).

template <class T> class BTree

{ private:

BTree<T> *l,*r; //

T data;

public:

void Add(T &a);

void Sort();

BTree();

~BTree(); };

template <class T> void BTree<T>::Add(T &a)

{ if(data==NULL) { data=a; return; } //

if(a>data)

{ if(r==NULL) r=new BTree<T>; r->Add(a); } else //

{ if(l==NULL) l=new BTree<T>; l->Add(a); } } //

template <class T> void BTree<T>::Sort()

{ if(l!=NULL) l->Sort(); //

if(r!=NULL) r->Sort(); //

if(l!=NULL&&r!=NULL)

if(l->data>r->data){ BTree *t=l; l=r; r=t; } }//

template <class T> BTree<T>::BTree()

{ l=NULL; r=NULL; data=0; }//

template <class T> BTree<T>::~BTree()

{ data=0; //

if(l!=NULL) delete l; // -//-

if(r!=NULL) delete r; } // -//-

void main()

{ BTree<long> a; // long-

a.Add(10); a.Add(3); a.Add(210); a.Add(70);//

a.Sort();}

//----------------------------------------------------------------------------

// 8.

// 2.

// 4. "-

template <class T> class BTree

{ private:

BTree<T> *l,*r; //

T data;

public:

void Add(T &a);

T* FindBin(T &key);

BTree();

~BTree(); };

template <class T> void BTree<T>::Add(T &a)

{ if(data==NULL) { data=a; return; } //

if(a>data)

{ if(r==NULL) r=new BTree<T>; r->Add(a); } else //

{ if(l==NULL) l=new BTree<T>; l->Add(a); } } //

template <class T> T* BTree<T>::FindBin(T &key)

{ if(key==data) return &data; T* s=NULL;

if(l!=NULL&&key<data) s=l->FindBin(key);

if(s!=NULL) return s;

if(r!=NULL&&key>data) s=r->FindBin(key);

if(s!=NULL) return s;

return NULL; }

template <class T> BTree<T>::BTree()

{ l=NULL; r=NULL; data=0; }//

template <class T> BTree<T>::~BTree()

{ data=0; //

if(l!=NULL) delete l; // -//-

if(r!=NULL) delete r; } // -//-

void main()

{ BTree<long> a; // long-

a.Add(10); a.Add(3); a.Add(210); a.Add(70);//

long j=*a.FindBin(210);}

//----------------------------------------------------------------------------

// 8.

// 2.

// 5. .

template <class T> class BTree

{ private:

BTree<T> *l,*r; //

T data;

public:

void Add(T &a);

int Insert(T &a,int k);

BTree();

~BTree(); };

template <class T> void BTree<T>::Add(T &a)

{ if(data==NULL) { data=a; return; } //

if(a>data)

{ if(r==NULL) r=new BTree<T>; r->Add(a); } else //

{ if(l==NULL) l=new BTree<T>; l->Add(a); } } //

template <class T> int BTree<T>::Insert(T &a,int k)

{ if(k==0)

{ if(data==0) { data=a; return 0; }

if(l!=NULL&&r==NULL)

{ r=new BTree<T>; r->data=data; data=a; return 0; }

if(l==NULL)

{ l=new BTree<T>; l->data=data; data=a; return 0; }

l->Insert(data,0);

data=a; return 0; }

if(k==1&&l!=NULL) return l->Insert(a,0);

if(k==2&&r!=NULL) return r->Insert(a,0);

if(l!=NULL) { k-=l->Insert(a,k); if(k==0) return 0; }

if(r!=NULL) { k-=r->Insert(a,k); if(k==0) return 0; }

return k; }

template <class T> BTree<T>::BTree()

{ l=NULL; r=NULL; data=0; }//

template <class T> BTree<T>::~BTree()

{ data=0; //

if(l!=NULL) delete l; // -//-

if(r!=NULL) delete r; } // -//-

void main()

{ BTree<long> a; // long-

a.Add(10); a.Add(3); a.Add(210); a.Add(70);//

a.Insert(111,0);}

//----------------------------------------------------------------------------

// 8.

// 2.

// 6. () .

template <class T> class BTree

{ private:

BTree<T> *l,*r; //

T data;

 
... 17 18 19 20 21 22 23 24 25 26 27 


Copyright © 2005—2007 «RefStore.Ru»