stack.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #include <iostream>
  2. #include <stdio.h>
  3. using namespace std;
  4. // Создайте метод reset, который очищает стек от элементов.
  5. // Создайте метод push, который добавляет в стек новый элемент.
  6. // Создайте метод pop, который удаляет последний элемент.
  7. // Создайте метод print, который выводит в консоль все элементы стека в формате: ( 0 1 2 )
  8. #define STACK_SIZE 10
  9. class Stack
  10. {
  11. public:
  12. Stack() : top(-1) {}
  13. ~Stack() {}
  14. private:
  15. int top;
  16. int data[STACK_SIZE];
  17. public:
  18. void reset(void) {
  19. top = -1;
  20. }
  21. void push(int val) {
  22. if (top != STACK_SIZE - 1)
  23. data[++top] = val;
  24. }
  25. void pop(void) {
  26. if (top != -1)
  27. top--;
  28. }
  29. void print(void) {
  30. if (top == -1) {
  31. cout << "Stack is empty" << endl;
  32. return;
  33. }
  34. cout << "( ";
  35. for (int i = 0; i <= top; i++)
  36. cout << data[i] << " ";
  37. cout << ")" << endl;
  38. }
  39. };
  40. int main()
  41. {
  42. Stack stack;
  43. stack.push(21);
  44. stack.push(22);
  45. stack.push(23);
  46. stack.push(24);
  47. stack.print();
  48. stack.pop();
  49. stack.print();
  50. stack.pop();
  51. stack.print();
  52. stack.reset();
  53. stack.print();
  54. stack.push(1);
  55. stack.push(2);
  56. stack.push(3);
  57. stack.print();
  58. return 0;
  59. }