Problem with push() in Stack using array
Dec 7, 2015 at 6:32pm UTC
As the program, stack should be overflow when pushing more than 5 data but overflow does not work till 7 data input.I could not find any error in my code.I need your help.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
#include <iostream>
#include <conio.h>
#include <stdlib.h>
class stack
{
int stk[5];
int top;
public :
stack()
{
top=-1;
}
void push (int x)
{
if (top >4)
{
cout<<"stack overflow" ;
return ;
}
stk[++top]=x;
cout<<"inserted" <<x;
}
void pop()
{
if (top<0)
{
cout<<"stack underflow" ;
return ;
}
cout<<"deleted" <<stk[top--];
}
void display()
{
if (top<0)
{
cout<<"stack empty" ;
return ;
}
for (int i=top;i>=0;i--)
{
cout<<stk[i]<<" " ;
}
}
};
void main()
{
int ch;
stack st;
while (1)
{
cout<<"\n1.push 2.pop 3.display 4.exit\nEnter your choice" ;
cin>>ch;
switch (ch)
{
case 1:
cout<<"enter the element " ;
cin>>ch;
st.push(ch);
break ;
case 2:
st.pop();
break ;
case 3:
st.display();
break ;
case 4:
exit(0);
}
}
return 0;
}
Topic archived. No new replies allowed.