Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2012
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.98 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. template <class T> class stos {
  7. private:
  8. T *t;
  9. unsigned int SIZE, MAX_SIZE;
  10. void Resize()
  11. {
  12. MAX_SIZE *= 10;
  13. T *Temp = new T[MAX_SIZE];
  14.  
  15. for( unsigned int i = 0; i < SIZE; ++i ) Temp[i] = t[i];
  16.  
  17. t = Temp;
  18. delete[] Temp;
  19. }
  20.  
  21.  
  22. public:
  23.  
  24.  
  25. stos(){
  26. MAX_SIZE=1;
  27. SIZE=0;
  28. Resize();
  29. }
  30.  
  31. ~stos(){
  32. delete [] t; }
  33.  
  34. bool empty(){
  35. if(SIZE==0) return true;
  36. else return false;
  37. }
  38.  
  39. bool full(){
  40. if(SIZE==MAX_SIZE) return true;
  41. else return false; }
  42.  
  43. void push(T x){
  44. if(SIZE == MAX_SIZE) Resize();
  45. else{
  46. t[SIZE]=x;
  47. SIZE++; }
  48. }
  49.  
  50.  
  51. void pop(){
  52. {
  53.  
  54. SIZE--;}
  55. }
  56. T top(){
  57. return t[SIZE-1]; }
  58.  
  59. unsigned int size(){
  60. return SIZE; }
  61. unsigned int max(){ return MAX_SIZE;}
  62.  
  63. };
  64.  
  65.  
  66.  
  67. int menu()
  68. {
  69. cout<<"\n......:::::MENU:::::......\n"<<endl;
  70. cout<<"1. Sprawdz czy stos jest pusty."<<endl;
  71. cout<<"2. Sprawdz rozmiar stosu."<<endl;
  72. cout<<"3. Najwyzszy element stosu"<<endl;
  73. cout<<"4. Dodaj element do stosu"<<endl;
  74. cout<<"5. Usun element ze stosu"<<endl;
  75. cout<<"6. Sprawdz czy stos jest pelny"<<endl;
  76. cout<<"7. Zakoncz program."<<endl;
  77. int a;
  78. cin>>a;
  79. return a;
  80. }
  81.  
  82.  
  83.  
  84.  
  85.  
  86. int main()
  87. {
  88.  
  89.  
  90. bool run = true;
  91. stos<int> s;
  92.  
  93. while(run)
  94. {
  95. switch(menu())
  96. {
  97. case 1:
  98. {
  99. if(s.empty())
  100. {
  101. cout<<"stos jest pusty."<<endl;
  102. }
  103. else
  104. {
  105. cout<<"stos nie jest pusty."<<endl;
  106. }
  107. break;
  108. }
  109. case 2:
  110. {
  111. cout<<"Rozmiar stosu: "<<s.size()<<endl;
  112. break;
  113. }
  114. case 3:
  115. {
  116.  
  117. if(s.empty())
  118. {
  119. cout<<"stos jest pusty."<<endl;
  120. }
  121. else
  122. {
  123. cout<<"Najwyzszy element na stosie: "<<s.top()<<endl;
  124. }
  125. break;
  126. }
  127. case 4:
  128. {
  129. int i;
  130. cout<<"Podaj liczbe jaka chcesz umiescic na stosie:"<<endl;
  131. cin>>i;
  132. s.push(i);
  133. break;
  134. }
  135. case 5:
  136. {
  137. if(!s.empty())
  138. {
  139. s.pop();
  140. }
  141. else
  142. {
  143. cout<<"Nie mozna usunac elementu ze stosu poniewaz stos jest pusty."<<endl;
  144. }
  145. break;
  146. }
  147. case 6:
  148. if(!s.full()){
  149. cout<<"zostalo: "<<s.max()-s.size()<<" wolnych miejsc"<<endl; }
  150. else cout<<"stos jest pelen"<<endl;
  151. break;
  152. case 7:
  153. {
  154. run = false;
  155. break;
  156. }
  157. };
  158. }
  159.  
  160. return 0;
  161. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement