INTERNET
 :
  |    

/

, . /

++.

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 

return &data[--sp]; }

template <class T,int size> void StackSA<T,size>::Exclude(int num)

{ if(sp==0||num>=sp||num<0)return;//

for(int p=num;p<sp-1;p++) data[p]=data[p+1]; sp--; }

void main()

{ StackSA<int,20> s; // 20- int

s.Push(35); s.Push(11); s.Push(89); //

s.Exclude(1); //

int *pa=s.Pop(),*pb=s.Pop(),*pc=s.Pop(); }// -

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

// 2.

// 2.

// 7.

template <class T,int size> class StackSA

{ private:

T data[size];

int sp; // ,-

public:

StackSA();

int Push(T element); //: [-1]

//,

T *Pop(void); //: [NULL]

T *operator[](int num);}; //

//: [NULL]

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

{ sp=0; }

template <class T,int size> int StackSA<T,size>::Push(T element)

{ if(sp==size) return -1; //

data[sp]=element;

return sp++; }

template <class T,int size> T *StackSA<T,size>::Pop(void)

{ if(sp==0) return NULL; //

return &data[--sp]; }

template <class T,int size> T *StackSA<T,size>::operator[](int num)

{ if(sp==0||num>=sp||num<0)

return NULL;//

return &data[num]; }

void main()

{ StackSA<int,20> s; // 20- int

s.Push(54); s.Push(23); s.Push(87); //

int *k=s[1]; //

int *pa=s.Pop(),*pb=s.Pop(),*pc=s.Pop();}// -

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

//3.

//1.

//1. .

template <class T,int size> class SArray

{ private:

T *data[size];

public:

SArray();

~SArray();

void operator+(T *q);

T* operator[](int i);};

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

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

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

{ for(int k=0;k<size;k++) if(data[k]!=NULL) delete data[k]; }

template <class T,int size> void SArray<T,size>::operator+(T *q)

{ for(int k=0;k<size&&data[k]!=NULL;k++);

if(k==size) return; //

for(;k>0&&*data[k-1]>*q;k--) data[k]=data[k-1]; //

data[k]=q; } //

template <class T,int size> T* SArray<T,size>::operator[](int i)

{ if(i<0||i>=size) return NULL;

if(data[i]==NULL) data[i]=new T;

return data[i]; }

void main()

{ SArray<int,10> a; // int

a+new int(5); a+new int(25); a+new int(15); //

int k=*a[1]; } // 15

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

//3.

//1.

//2. ".

template <class T,int size> class SArray

{ private:

T *data[size];

public:

SArray();

~SArray();

T* Min();

T* operator[](int i);};

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

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

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

{ for(int k=0;k<size;k++) if(data[k]!=NULL) delete data[k]; }

template <class T,int size> T* SArray<T,size>::Min()

{ for(int k=0;k<size&&data[k]==NULL;k++); // NULL

int tmp=k++; // tmp

for(;k<size;k++)

if(data[k]!=NULL&&*data[k]<*data[tmp]) tmp=k; //

return data[tmp]; }

template <class T,int size> T* SArray<T,size>::operator[](int i)

{ if(i<0||i>=size) return NULL;

if(data[i]==NULL) data[i]=new T;

return data[i]; }

void main()

{ SArray<int,10> a; // int

*a[1]=5; *a[4]=3; *a[3]=7; //

int k=*a.Min(); } // 3

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

//3.

//1.

//3. ( ).

template <class T,int size> class SArray

{ private:

T *data[size];

public:

SArray();

~SArray();

void Sort();

T* operator[](int i); };

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

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

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

{ for(int k=0;k<size;k++) if(data[k]!=NULL) delete data[k]; }

template <class T,int size> void SArray<T,size>::Sort()

{ for(int i=0;i<size-1;i++)

for(int j=i+1;j<size;j++)

if(data[i]==NULL||(data[j]!=NULL&&*data[j]<*data[i])) //

{ T* tmp=data[j]; data[j]=data[i]; data[i]=tmp; } } //

template <class T,int size> T* SArray<T,size>::operator[](int i)

{ if(i<0||i>=size) return NULL;

if(data[i]==NULL) data[i]=new T;

return data[i]; }

void main()

{ SArray<int,10> a; // int

*a[1]=15; *a[4]=9; *a[3]=17; //

a.Sort(); //

int i=*a[0],j=*a[1],k=*a[2]; } //

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

//3.

//1.

//4. "-

template <class T,int size> class SArray

{ private:

T *data[size];

public:

SArray();

~SArray();

T* FindBin(T &key);

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 


Copyright © 2005—2007 «RefStore.Ru»