INTERNET
 :
  |    

/

, . /

++.

 
... 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 

*next,*prev;

T data;

public:

List(T a);

~List();

void Insert(T a,int pos); //

void Delete(int pos); }; //

template <class T> List<T>::List(T a)

{ next=this; prev=this; data=a; }

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

{ data=-1; if(next!=NULL&&next->data!=-1) //

delete next; }//

template <class T> void List<T>::Insert(T a,int pos)

{ List<T> *p=this,*q;

while(pos-->0&&p->next!=this) p=p->next; //

q=p->next;

p->next=new List<T>(p->data); //

p->data=a; //

p->next->next=q;

p->next->prev=p; } //

template <class T> void List<T>::Delete(int pos)

{ if(pos==0||next==this)return;//

List<T> *p=this,*q=next;

while(pos-->1&&q->next!=this){ p=p->next;q=q->next; }//

p->next=q->next;

q->next->prev=p;

q->next=NULL;

delete q; }

void main()

{ List<int> a(10); //

a.Insert(55,1); //

a.Delete(1);} //

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

// 6.

// 1.

// 7. .

template <class T> class List

{ private:

List<T> *next,*prev;

T data;

public:

List(T a);

~List();

void Insert(T a,int pos); //

T Get(int num); };//

template <class T> List<T>::List(T a)

{ next=this; prev=this; data=a; }

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

{ data=-1; if(next!=NULL&&next->data!=-1) //

delete next; }//

template <class T> void List<T>::Insert(T a,int pos)

{ List<T> *p=this,*q;

while(pos-->0&&p->next!=this) p=p->next; //

q=p->next;

p->next=new List<T>(p->data); //

p->data=a; //

p->next->next=q;

p->next->prev=p; } //

template <class T> T List<T>::Get(int num)

{ List<T> *p=this;

while(num-->0&&p->next!=this) { p=p->next; }//

return p->data; }

void main()

{ List<int> a(10); //

a.Insert(15,1); a.Insert(6,1); a.Insert(7,1); //

int i=a.Get(2); }; //

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

// 7.

// 1.

// 1. .

template <class T,int size> class Tree

{ private:

Tree<T,size> *child[size];

T *data;

public:

Tree();

~Tree();

void Add(T a);} //

template <class T,int size> Tree<T,size>::Tree()

{ for(int i=0;i<size;i++) child[i]=NULL; data=NULL; }

template <class T,int size> Tree<T,size>::~Tree()

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

for(int i=0;i<size;i++)

if(child[i]!=NULL) delete child[i]; }//

template <class T,int size> void Tree<T,size>::Add(T a) //

{ if(data==NULL) { data=new T; *data=a; return; }

for(int i=0;i<size&&child[i]!=NULL&&a>*child[i]->data;i++);

if(child[i]==NULL) child[i]=new Tree<T,size>;

child[i]->Add(a); }

void main()

{ Tree<int,5> a; //

a.Add(5); a.Add(11); a.Add(3); a.Add(15);} //

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

// 7.

// 1.

// 2. .

template <class T,int size> class Tree

{ private:

Tree<T,size> *child[size];

T *data;

public:

Tree();

~Tree();

void Add(T a); //

T *FindMin(); }//

template <class T,int size> Tree<T,size>::Tree()

{ for(int i=0;i<size;i++) child[i]=NULL; data=NULL; }

template <class T,int size> Tree<T,size>::~Tree()

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

for(int i=0;i<size;i++)

if(child[i]!=NULL) delete child[i]; }//

template <class T,int size> void Tree<T,size>::Add(T a) //

{ if(data==NULL) { data=new T; *data=a; return; }

for(int i=0;i<size&&child[i]!=NULL&&a>*child[i]->data;i++);

if(child[i]==NULL) child[i]=new Tree<T,size>;

child[i]->Add(a); }

template <class T,int size> T* Tree<T,size>::FindMin()

{ T* tmp=data; //

for(int i=0;i<size;i++)

if(child[i]!=NULL)

{ T* tmp2=child[i]->FindMin(); //

if(*tmp2<*tmp) tmp=tmp2; }

return tmp; } //

void main()

{ Tree<int,5> a; //

a.Add(5); a.Add(11); a.Add(3); a.Add(15); //

int k=*a.FindMin(); } //

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

// 7.

// 1.

// 3. ( ).

template <class T,int size> class Tree

{ private:

Tree<T,size> *child[size];

T *data;

public:

Tree();

~Tree();

void Add(T a); //

void Sort(); }//

template <class T,int size> Tree<T,size>::Tree()

{

 
... 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 


Copyright © 2005—2007 «RefStore.Ru»