fork download
  1. #include <iostream>
  2. #include <bits/stdc++.h>
  3.  
  4. class Stack {
  5. private:
  6. std::vector<int> stack;
  7. int top = -1;
  8. int len = 0;
  9.  
  10. public:
  11. bool isFull() {
  12. return top == len - 1;
  13. }
  14.  
  15. bool isEmpty() {
  16. return top == -1;
  17. }
  18.  
  19. int showTop() {
  20. if (isEmpty()) return -1;
  21. return stack[top];
  22. }
  23.  
  24. bool push(int val) {
  25. if (isFull()) return false;
  26.  
  27. stack[++top] = val;
  28. return true;
  29. }
  30.  
  31. int pop() {
  32. if (isEmpty()) return -1;
  33. top--;
  34. return showTop();
  35. }
  36.  
  37. Stack(int l) : len(l) {
  38. stack = std::vector<int>(l);
  39. std::cout << "Stack of length " << l << " initialized !!" << "\n";
  40. }
  41. };
  42.  
  43. int main() {
  44. std::cout << "Stack Trace" << "\n";
  45. std::cout << "Creating Stack of length 3 : " << "\n";
  46. Stack stack(3);
  47.  
  48. std::cout << "Adding 5 \n";
  49. stack.push(5);
  50. std::cout << "Is empty ? : " << stack.isEmpty() << "\n";
  51. std::cout << "Adding 2 \n";
  52. stack.push(2);
  53. std::cout << "Is empty ? : " << stack.isEmpty() << "\n";
  54. std::cout << "Is full ? : " << stack.isFull() << "\n";
  55. std::cout << "Top ? : " << stack.showTop() << "\n";
  56. std::cout << "Adding 1 \n";
  57. stack.push(1);
  58. std::cout << "Is empty ? : " << stack.isEmpty() << "\n";
  59. std::cout << "Is full ? : " << stack.isFull() << "\n";
  60. std::cout << "Top ? : " << stack.showTop() << "\n";
  61. std::cout << "Adding 6 \n";
  62. stack.push(6);
  63. std::cout << "Is empty ? : " << stack.isEmpty() << "\n";
  64. std::cout << "Is full ? : " << stack.isFull() << "\n";
  65. std::cout << "Top ? : " << stack.showTop() << "\n";
  66. std::cout << "Removing Top \n";
  67. stack.pop();
  68. std::cout << "Is empty ? : " << stack.isEmpty() << "\n";
  69. std::cout << "Is full ? : " << stack.isFull() << "\n";
  70. std::cout << "Top ? : " << stack.showTop() << "\n";
  71. std::cout << "Removing Top \n";
  72. stack.pop();
  73. std::cout << "Is empty ? : " << stack.isEmpty() << "\n";
  74. std::cout << "Is full ? : " << stack.isFull() << "\n";
  75. std::cout << "Top ? : " << stack.showTop() << "\n";
  76. std::cout << "Removing Top \n";
  77. stack.pop();
  78. std::cout << "Is empty ? : " << stack.isEmpty() << "\n";
  79. std::cout << "Is full ? : " << stack.isFull() << "\n";
  80. std::cout << "Top ? : " << stack.showTop() << "\n";
  81. std::cout << "Removing Top \n";
  82. stack.pop();
  83. std::cout << "Is empty ? : " << stack.isEmpty() << "\n";
  84. std::cout << "Is full ? : " << stack.isFull() << "\n";
  85. std::cout << "Top ? : " << stack.showTop() << "\n";
  86. return 0;
  87. }
  88.  
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
Stack Trace
Creating Stack of length 3 : 
Stack of length 3 initialized !!
Adding 5 
Is empty ? : 0
Adding 2 
Is empty ? : 0
Is full ? : 0
Top ? : 2
Adding 1 
Is empty ? : 0
Is full ? : 1
Top ? : 1
Adding 6 
Is empty ? : 0
Is full ? : 1
Top ? : 1
Removing Top 
Is empty ? : 0
Is full ? : 0
Top ? : 2
Removing Top 
Is empty ? : 0
Is full ? : 0
Top ? : 5
Removing Top 
Is empty ? : 1
Is full ? : 0
Top ? : -1
Removing Top 
Is empty ? : 1
Is full ? : 0
Top ? : -1