![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
KISSSA |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 1 Регистрация: 7.4.2009 Город: Украина, Донецк Учебное заведение: ДонНУ Вы: студент ![]() |
#ifndef _stackT_h
#define _stackT_h #include <iostream.h> #include <memory.h> #include <process.h> template<class T> class stack { public: unsigned N; unsigned Size; T *A; stack () { N=10; Size=0; A = new T [N]; } stack (const stack<T> &V) { A = new T [N=V.N]; if (A==NULL) { cout << "Error: \n"; } else { Size=V.Size; for(unsigned i=0;i<N;i++) A[i]=V.A[i]; } } ~stack () { delete []A; } T& operator[] (unsigned i) const { if ((i<=Size)&&(i>=0))//проверка на существование элемента с заданым индексом return A[i]; else { cout << "Net takogo elementa" << endl; exit(1); } } void push_back(const T& v) { if(N==Size) resize(Size*2); A[Size++]=v; } void resize(unsigned newsize) { if(newsize>N) { T *data =new T[newsize]; for(unsigned i=0;i<N;++i) data[i]=A[i]; delete[] A; A=data; N=newsize; } } void push (T symb) { if (Size>=N) { push_back(symb); return; } else { Size=Size+1; A[Size]=symb; } } T pop() { T item; if(Size==0) { cout<<"stack empty"<<endl; return(0); } else { item=A[Size]; Size--; } return(item); } }; #endif |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 13:39 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru