Stack Implementation:

 

 

# include<iostream.h>

# include<process.h>

# include<conio.h>

# define SIZE 20

 

class stack

{

int a[SIZE];

int tos; // Top of Stack

public:

            stack();

            void push(int);

            int pop();

            int isempty();

            int isfull();

};

stack::stack()

{

tos=0; //Initialize Top of Stack

}

 

int stack::isempty()

{

return (tos==0?1:0);

}

int stack::isfull()

{

return (tos==SIZE?1:0);

}

 

void stack::push(int i)

{

if(!isfull())

{

a[tos]=i;

tos++;

}

else

{

 cerr<<"Stack overflow error !

Possible Data Loss !";

}

}

int stack::pop()

{

if(!isempty())

{

return(a[--tos]);

}

else

{

cerr<<"Stack is empty! What to pop...!";

}

return 0;

}

 

void main()

{

stack s;

int ch=1,num;

while(ch!=0)

{

            cout<<"Stack Operations Mani Menu

1.Push

2.Pop

3.IsEmpty

4.IsFull

0.Exit

 

";

            cin>>ch;

            switch(ch)

            {

            case 0:

                        exit(1); //Normal Termination of Program

            case 1:

                        cout<<"Enter the number to push";

                        cin>>num;

                        s.push(num);

                        break;

            case 2:

                        cout<<"Number popped from the stack is: "<<s.pop()<<endl;

                        break;

            case 3:

                        (s.isempty())?(cout<<"Stack is empty.

"):(cout<<"Stack is not empty.

");

                        break;

            case 4:

                        (s.isfull())?(cout<<"Stack is full.

"):(cout<<"Stack is not full.

");

                        break;

            default:

                        cout<<"Illegal Option.

Please try again

";

            }

}//end of while

getch();

}

 

 

 

 

Home

Sortings >>