INTERNET
 :
  |    

/

, . /

++.

 
... 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ... 

template <class T> class List

{ private:

List<T> *next;

T *data;

public:

List(T a);

~List();

void Sort(); //

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

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

{ next=NULL; data=new T; *data=a; }//

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

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

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

{ for(List<T> *p=this;p->next!=NULL;p=p->next)

for(List<T> *q=p->next;q!=NULL;q=q->next)

if(*p->data>*q->data) //

{ T* tmp=p->data; p->data=q->data; q->data=tmp; } } //

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

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

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

q=p->next;

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

*p->data=a; //

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

void main()

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

a.Insert(15,1); a.Insert(4,2); a.Insert(7,3);//

a.Sort(); } //

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

// 5.

// 1.

// 4. -

template <class T> class List

{ private:

List<T> *next;

T *data;

public:

List(T a);

~List();

List<T>*Search(int num);

T* FindBin(T key);

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

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

{ next=NULL; data=new T; *data=a; }//

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

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

template <class T> List<T>* List<T>::Search(int num)

{ List<T> *p=this;

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

return p; }

template <class T> T* List<T>::FindBin(T key)

{ int a=0,b=1; //,

List<T> *p=this;

while(p->next!=NULL) { b++; p=p->next; } //

while(a<=b)

{ int m=(a+b)/2; //

if(*Search(m)->data==key) return Search(m)->data; //

if(*Search(m)->data<key) a=m+1; //

else b=m-1; }//

return NULL; } //

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

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

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

q=p->next;

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

*p->data=a; //

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

void main()

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

a.Insert(6,1); a.Insert(9,2); a.Insert(17,3);//

int j=*a.FindBin(11);}

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

// 5.

// 1.

// 5. .

template <class T> class List

{ private:

List<T> *next;

T *data;

public:

List(T a);

~List();

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

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

{ next=NULL; data=new T; *data=a; }//

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

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

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

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

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

q=p->next;

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

*p->data=a; //

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

void main()

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

a.Insert(55,1); } //

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

// 5.

// 1.

// 6. () .

template <class T> class List

{ private:

List<T> *next;

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=NULL; data=new T; *data=a; }//

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

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

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

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

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

q=p->next;

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

*p->data=a; //

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

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

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

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

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

p->next=q->next;

q->next=NULL;

delete q; }

void main()

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

a.Insert(55,1); a.Insert(5,2); a.Insert(17,3);//

a.Delete(1); }//

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

// 5.

// 1.

// 7. .

 
... 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ... 


Copyright © 2005—2007 «RefStore.Ru»