Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.12 KB | None | 0 0
  1. // Moje
  2. // zad 1 stosy_zadania.pdf
  3. #include<iostream>
  4.  
  5. using namespace std;
  6. template <class T>
  7. class StosT
  8. {
  9.  T *dane;
  10.  int wierzch;
  11.  int max;
  12.  public:
  13.  StosT();
  14.  bool Pusty()const;
  15.  void DoStosu(T d);
  16.  T ZeStosu();
  17.  ~StosT();
  18.  
  19.  int gdzie(){return wierzch;}
  20. };
  21.  
  22. template <class T>
  23. StosT<T>::StosT()
  24. {
  25.  wierzch=0;
  26.  max=0;
  27.  dane=NULL;
  28. }
  29.  
  30. template <class T>
  31. bool StosT<T>::Pusty()const
  32. { return wierzch==0;}
  33.  
  34. template <class T>
  35. void StosT<T>::DoStosu(T d)
  36. {
  37.  
  38.  if(wierzch==max)
  39.  {
  40.   max+=100;
  41.   T* pom=new T[max];
  42.   for(int i=0;i<max-100;i++)
  43.    pom[i]=dane[i];
  44.  
  45.   delete [] dane;
  46.   dane=pom;
  47.   }
  48.   dane[wierzch++]=d;
  49. }
  50.  
  51. template <class T>
  52. T StosT<T>::ZeStosu()
  53. {
  54.  if(wierzch>0) return dane[--wierzch];
  55.  else throw out_of_range("Stos jest juz pusty");
  56. }
  57.  
  58. template <class T>
  59. StosT<T>::~StosT()
  60. { delete [] dane;}
  61.  
  62.  
  63.  
  64. template <class T>
  65. void test()
  66. {
  67.   StosT <T> t;
  68.  for(int i=0;i<110;i++)
  69.   t.DoStosu(T(i));
  70.  while(!t.Pusty())
  71.  cout <<t.gdzie() << "\t" << t.ZeStosu()<< endl;
  72.  
  73. }
  74. int main()
  75. {
  76.  test<int>();
  77.  test<char>();
  78.  test<double>();
  79.  
  80.  
  81.  
  82.  system("pause");
  83.  return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement