INTERNET
 :
  |    

/

, . /

++.

 
1 2 3 4 5 6 7 8 9 10 11 ... 

T *temp=data[j];data[j]=data[i];data[i]=temp; } } //

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

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

while(a<=b)

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

if(*data[m]==key) return data[m]; //

if(*data[m]>key) a=m+1; //

else b=m-1; }//

return NULL; } //

template <class T> StackDA<T>::~StackDA(void)

{ delete data; }

void main()

{ StackDA<int> s(20); // 20- int

int a=13,b=5,c=7,d=13;

s.Push(a); s.Push(b); s.Push(c); //

s.Sort(); int *k=s.FindBin(d); } //

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

// 1.

// 1.

// 5.

template <class T> class StackDA

{ private:

T **data; //

int size,sp; // ,-

public:

StackDA(int _size);

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

//,

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

int Insert(T &element,int num); //

//: [-1]

//,

~StackDA(void); };

template <class T> StackDA<T>::StackDA(int _size)

{ size=_size;

data=(T**)new char[size*sizeof(T*)]; //

sp=0; }

template <class T> int StackDA<T>::Push(T &element)

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

data[sp]=&element;

return sp++; }

template <class T> T *StackDA<T>::Pop(void)

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

return data[--sp]; }

template <class T> int StackDA<T>::Insert(T &element,int num)

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

return -1;//

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

data[num]=&element;

return sp; }

template <class T> StackDA<T>::~StackDA(void)

{ delete data; }

void main()

{ StackDA<int> s(20); // 20- int

int a=13,b=5,c=7;

s.Push(a); s.Push(b); //

s.Insert(c,1); //

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

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

// 1.

// 1.

// 6.

template <class T> class StackDA

{ private:

T **data; //

int size,sp; // ,-

public:

StackDA(int _size);

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

//,

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

T *Exclude(int num); //

//: [NULL]

~StackDA(void); };

template <class T> StackDA<T>::StackDA(int _size)

{ size=_size;

data=(T**)new char[size*sizeof(T*)]; //

sp=0; }

template <class T> int StackDA<T>::Push(T &element)

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

data[sp]=&element;

return sp++; }

template <class T> T *StackDA<T>::Pop(void)

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

return data[--sp]; }

template <class T> T *StackDA<T>::Exclude(int num)

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

return NULL;//

T *temp=data[num];

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

sp--;

return temp; }

template <class T> StackDA<T>::~StackDA(void)

{ delete data; }

void main()

{ StackDA<int> s(20); // 20- int

int a=13,b=5,c=7;

s.Push(a); s.Push(b); s.Push(c); //

int *k=s.Exclude(1); //

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

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

// 1.

// 1.

// 7.

template <class T> class StackDA

{ private:

T **data; //

int size,sp; // ,-

public:

StackDA(int _size);

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

//,

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

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

//: [NULL]

~StackDA(void); };

template <class T> StackDA<T>::StackDA(int _size)

{ size=_size;

data=(T**)new char[size*sizeof(T*)]; //

sp=0; }

template <class T> int StackDA<T>::Push(T &element)

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

data[sp]=&element;

return sp++; }

template <class T> T *StackDA<T>::Pop(void)

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

return data[--sp]; }

template <class T> T *StackDA<T>::operator[](int num)

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

return NULL;//

return data[num]; }

template <class T> StackDA<T>::~StackDA(void)

{ delete data; }

void main()

{ StackDA<int> s(20); // 20- int

int a=13,b=5,c=7;

s.Push(a); s.Push(b); s.Push(c); //

int *k=s[1]; //

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

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

// 1.

 
1 2 3 4 5 6 7 8 9 10 11 ... 


Copyright © 2005—2007 «RefStore.Ru»