INTERNET
 :
  |    

/

, . /

++.

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

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=new T; *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==NULL) { data=new T; *data=a; return 0; }

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

{ r=new BTree<T>; r->data=new T;

*r->data=*data; *data=a; return 0; }

if(l==NULL)

{ l=new BTree<T>; l->data=new 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=NULL; }//

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

{ if(data!=NULL) delete data; //

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.

// 1.

// 6. () .

template <class T> class BTree

{ private:

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

T* data;

public:

void Add(T &a);

int Delete(int k);

BTree();

~BTree(); };

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

{ if(data==NULL) { data=new T; *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>::Delete(int k)

{ if(k==0) if(data!=NULL) { delete data; data=NULL; return 0; }

if(k==1&&l!=NULL) return l->Delete(0);

if(k==2&&r!=NULL) return r->Delete(0);

if(l!=NULL) {k-=l->Delete(k); if(k==0) return 0; }

if(r!=NULL) {k-=r->Delete(k); if(k==0) return 0; }

return k; }

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

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

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

{ if(data!=NULL) delete data; //

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.Delete(1); }

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

// 8.

// 1.

// 7. .

template <class T> class BTree

{ private:

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

T* data;

public:

void Add(T &a);

T* Find(int &k);

BTree();

~BTree(); };

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

{ if(data==NULL) { data=new T; *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>::Find(int &k)

{ if(k==0) return data;

T* tmp=NULL; k--;

if(l!=NULL) {tmp=l->Find(k); if(tmp!=NULL) return tmp; }

if(r!=NULL) {tmp=r->Find(k); if(tmp!=NULL) return tmp; }

return NULL; }

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

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

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

{ if(data!=NULL) delete data; //

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 m=*a.Find(1);}

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

// 8.

// 2.

// 1. .

template <class T> class BTree

{ private:

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

T data;

public:

void Add(T &a);

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> 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); }//

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

// 8.

// 2.

// 2. ".

template <class T> class BTree

{ private:

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

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


Copyright © 2005—2007 «RefStore.Ru»