fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. #define MAX 100
  5.  
  6. template <typename T>
  7.  
  8. class Stack {
  9. private:
  10. int top;
  11. T arr[MAX];
  12.  
  13. public:
  14. Stack() {
  15. top = -1;
  16. }
  17. void push(T element)
  18. {
  19. if (top == MAX - 1)
  20. {
  21. cout << "Stack Overflow" << endl;
  22. }
  23. else
  24. {
  25. top++;
  26. arr[top] = element;
  27. }
  28. }
  29.  
  30. T pop()
  31. {
  32. if (top == -1)
  33. {
  34. cout << "Stack Empty";
  35. return -1;
  36. }
  37. else
  38. {
  39. return arr[top--];
  40. }
  41. }
  42.  
  43. bool isStackEmpty()
  44. {
  45. return (top == -1);
  46. }
  47.  
  48. bool isStackFull()
  49. {
  50. return (top == MAX - 1);
  51. }
  52.  
  53. void peek()
  54. {
  55. if (top == -1)
  56. {
  57. cout << "Stack Empty";
  58. }
  59. else
  60. {
  61. cout << "Top element: " << arr[top] << endl;
  62. }
  63. }
  64.  
  65. T displayStack()
  66. {
  67. if (top == -1)
  68. {
  69. cout << "Stack Empty";
  70. }
  71. else
  72. {
  73. cout << "Stack elements: ";
  74. for (T i = top; i >= 0; i--)
  75. {
  76. cout << arr[i] << " ";
  77. }
  78. cout << endl;
  79. }
  80. }
  81.  
  82. void clearStack()
  83. {
  84. top = -1;
  85. cout << "Stack cleared" << endl;
  86. }
  87.  
  88. };
  89.  
  90. int main()
  91. {
  92. Stack<char> s;
  93. char y;
  94.  
  95. s.push('A');
  96. s.push('B');
  97. s.push('C');
  98. y = s.pop();
  99. cout << "Popped element: " << y << endl;
  100. s.peek();
  101. return 0;
  102. }
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
Popped element: C
Top element: B