Solved programming problem

Delete the middle element of a stack in C++.

Source code

#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

Join the discussion

Add your comment