Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Moje
- // zad 1 stosy_zadania.pdf
- #include<iostream>
- using namespace std;
- template <class T>
- class StosT
- {
- T *dane;
- int wierzch;
- int max;
- public:
- StosT();
- bool Pusty()const;
- void DoStosu(T d);
- T ZeStosu();
- ~StosT();
- int gdzie(){return wierzch;}
- };
- template <class T>
- StosT<T>::StosT()
- {
- wierzch=0;
- max=0;
- dane=NULL;
- }
- template <class T>
- bool StosT<T>::Pusty()const
- { return wierzch==0;}
- template <class T>
- void StosT<T>::DoStosu(T d)
- {
- if(wierzch==max)
- {
- max+=100;
- T* pom=new T[max];
- for(int i=0;i<max-100;i++)
- pom[i]=dane[i];
- delete [] dane;
- dane=pom;
- }
- dane[wierzch++]=d;
- }
- template <class T>
- T StosT<T>::ZeStosu()
- {
- if(wierzch>0) return dane[--wierzch];
- else throw out_of_range("Stos jest juz pusty");
- }
- template <class T>
- StosT<T>::~StosT()
- { delete [] dane;}
- template <class T>
- void test()
- {
- StosT <T> t;
- for(int i=0;i<110;i++)
- t.DoStosu(T(i));
- while(!t.Pusty())
- cout <<t.gdzie() << "\t" << t.ZeStosu()<< endl;
- }
- int main()
- {
- test<int>();
- test<char>();
- test<double>();
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement