StackDemo Cpp


SUBMITTED BY: Guest

DATE: Sept. 5, 2014, 9:04 p.m.

FORMAT: C++

SIZE: 1.7 kB

HITS: 585

  1. #include <iostream>
  2. using namespace std;
  3. int stsize = 4;
  4. int estack = 0;
  5. int *mstack;
  6. void push()
  7. {
  8. if (estack==stsize){
  9. cout<<"Stack is full"<<endl;
  10. return;
  11. }
  12. int el=0;
  13. cout<<"Element to Push? ";
  14. cin>>el;
  15. cout<<endl;
  16. mstack[estack]=el;
  17. estack++;
  18. }
  19. int pop()
  20. {
  21. if (estack==0) {
  22. cout<<"Stack is empty"<<endl;
  23. return -1;
  24. }
  25. int el=0;
  26. estack--;
  27. el=mstack[estack];
  28. cout<<"Element is "<<el<<endl;
  29. return el;
  30. }
  31. void setstacksize(){
  32. int ssi = 0;
  33. cout<<"Enter new stack size: ";
  34. cin>>ssi;
  35. cout<<endl;
  36. stsize=ssi;
  37. return;
  38. }
  39. void clearstack()
  40. {
  41. estack=0;
  42. return;
  43. }
  44. void dumpstack()
  45. {
  46. cout<<"Stack..."<<endl;
  47. cout<<endl;
  48. cout<<"Stack Size: "<<stsize<<endl;
  49. cout<<"Stack Element: "<<estack<<endl;
  50. cout<<"El."<<"Value"<<endl;
  51. for (int i=0;i<estack;i++){
  52. cout<<i<<mstack[i]<<endl;
  53. }
  54. return;
  55. }
  56. int main () {
  57. mstack = new int[stsize];
  58. bool ext=false;
  59. while (!ext) {
  60. cout<<"Stack Demo"<<endl;
  61. cout<<endl;
  62. cout<<"1) Push element"<<endl;
  63. cout<<"2) Pop element"<<endl;
  64. cout<<"3) Set stack Size"<<endl;
  65. cout<<"4) Clear Stack"<<endl;
  66. cout<<"5) Write Stack"<<endl;
  67. cout<<"99) Exit"<<endl;
  68. int wyb=0;
  69. cin>>wyb;
  70. cout<<endl;
  71. switch (wyb)
  72. {
  73. case 99: ext=true;
  74. break;
  75. case 1: push();
  76. break;
  77. case 2: pop();
  78. break;
  79. case 3: setstacksize();
  80. break;
  81. case 4: clearstack();
  82. break;
  83. case 5: dumpstack();
  84. break;
  85. }
  86. }
  87. return 0;
  88. }

comments powered by Disqus