#include <iostream>
#define MAXSIZE 5
using namespace std;
struct STACK
{
int top;
int data[MAXSIZE];
};
int middle;
typedef struct STACK stack;
stack stc;
int push() ///insert in stack
{
int n;
if(stc.top>=MAXSIZE)
{
cout<<"Stack is FULL";
return 0;
}
else
{
cout<<"Please Enter Data: ";
cin>>n;
stc.data[stc.top]=n;
stc.top++;
}
}
int pop()
{
int num;
if(stc.top==0)
{
cout<<"No Data Found";
return 0;
}
else
{
stc.top=stc.top-1; ///delete last element
}
}
void print() ///print total stack
{
if(stc.top <= 0)
{
cout<<"Your Stack is Empty ";
return;
}
else
{
int i;
cout<<"Your Stack: ";
for(i=0; i<stc.top; i++)
{
cout<<stc.data[i];
}
}
}
int delete_middle(int middle,int i)
{
if(middle==i) ///base case
{
return 0;
}
delete_middle(middle,i-1);
stc.data[i-1] = stc.data[i];
}
int main()
{
int flag=1;
stc.top=0; ///set top value as 0.
while(flag !=0 )
{
cout<<"Enter 1 For PUSHEnter 2 For POPEnter 3 For Print AllPress 0 For Exit.";
cin>>flag;
if(flag==1)
{
push();
}
else if(flag==2)
{
pop();
}
else if(flag==3)
{
print();
}
}
middle=(stc.top)/2; ///find the middle
delete_middle(middle,stc.top-1);
stc.top--;
print();
return 0;
}
Output
Enter 1 For PUSH
Enter 2 For POP
Enter 3 For Print All
Press 0 For Exit.
1
Please Enter Data: 1
Enter 1 For PUSH
Enter 2 For POP
Enter 3 For Print All
Press 0 For Exit.
1
Please Enter Data: 2
Enter 1 For PUSH
Enter 2 For POP
Enter 3 For Print All
Press 0 For Exit.
1
Please Enter Data: 3
Enter 1 For PUSH
Enter 2 For POP
Enter 3 For Print All
Press 0 For Exit.
1
Please Enter Data: 4
Enter 1 For PUSH
Enter 2 For POP
Enter 3 For Print All
Press 0 For Exit.
1
Please Enter Data: 5
Enter 1 For PUSH
Enter 2 For POP
Enter 3 For Print All
Press 0 For Exit.
3
Your Stack: 12345
Enter 1 For PUSH
Enter 2 For POP
Enter 3 For Print All
Press 0 For Exit.
0
Your Stack: 1245
Add your comment