Advertisement
Guest User

Untitled

a guest
Nov 17th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. const int MAX=20;
  4. class myStack
  5. {
  6. private:
  7. int a[MAX];
  8. int top; // Индекс на последния елемент в стека
  9. bool full() const;
  10.  
  11. public:
  12.  
  13. // създаване на празен стек
  14. myStack();
  15. // проверка дали стек е празен
  16. bool empty() const;
  17. // включване на елемент
  18. void push(int const& x);
  19. // изключване на елемент
  20. int pop();
  21. // поглеждане на елемента на върха на стека
  22. int peek() const;
  23. };
  24. myStack::myStack() : top(-1) {}
  25.  
  26. bool myStack::empty() const {
  27. return top == -1;
  28. }
  29.  
  30. bool myStack::full() const {
  31. return top == MAX - 1;
  32. }
  33.  
  34. void myStack::push(int const& x) {
  35. if (full()) {
  36. std::cerr << "Опит за включване в пълен стек!\n";
  37. } else
  38. a[++top] = x;
  39. }
  40.  
  41. int myStack::pop() {
  42. if (empty()) {
  43. // Стекът е празен
  44. std::cerr << "Опит за изключване на елемент от празен стек!\n";
  45. return 0;
  46. }
  47. return a[top--];
  48. }
  49.  
  50. int myStack::peek() const {
  51. if (empty()) {
  52. // Стекът е празен
  53. std::cerr << "Опит за достъп до върха на празен стек!\n";
  54. return 0;
  55. }
  56. return a[top];
  57. }
  58. int main()
  59. {
  60. myStack s;
  61. s.push(1);
  62. s.push(2);
  63. s.push(3);
  64. s.push(4);
  65. s.push(5);
  66. while(!s.empty())
  67. {
  68. std::cout<<s.peek();
  69. s.pop();
  70. }
  71.  
  72. return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement