NAV BAR

Monday 8 August 2016

Using Multiple stack in C

#include<stdio.h>
#include<conio.h>
# define MAX 10
int stack[MAX],topA = -1,topB = MAX;
void main()
{
    int i,choice,val;
    do
    {
        printf("Enter any choice from following");
        printf("\n1.push stack A");
        printf("\n2.pop stack A");
        printf("\n3.peek stack A");
        printf("\n4.push stack B");
        printf("\n5.pop stack B");
        printf("\n6.peek stack B");
        printf("\n1.Exit");
        scanf("%d",&choice);


        switch(choice)
        {
            case 1:printf("Enter value to be pushed\n");
                scanf("%d",&val);
                pushA(val);
                break;
            case 2:popA();
                 break;
            case 3:peekA();
                 break;
            case 4:printf("Enter value to be pushed\n");
                scanf("%d",&val);
                pushB(val);
                break;
            case 5:popB();
                break;
            case 6:peekB();
                break;
            case 7:exit(1);
            break;
        }
    }
        while(choice!=7);
     getch();
    }
void pushA(int val)
{
    if(topA==topB-1)
    {
        printf("Stack is overflow\n");
    }
    else
    {
        topA = topA+1;
        stack[topA] = val;

        printf("Value added\n");
    }
}
void pushB (int val)
{
    if(topB-1==topA)
    {
        printf("Stack is overflow\n");
    }
    else
    {
        stack[topB--] = val;
        printf("Value added\n");
    }
}
void popA()
{
    if(topA==-1)
    {
        printf("Stack is underflow\n");

    }
    else
    {
        int temp;
        temp=stack[topA--];
    }

}
void popB()
{
    if(topB==MAX)
    {
        printf("Stack is underflow\n");

    }
    else
    {
        int temp;
        temp=stack[topB++];
    }

}
void peekA()
{
    int i;
    if(topA==-1)
    {
        printf("Stack is empty\n");
    }
    else
    {
        for(i=topA;i>=0;i--)
        {
            printf("\n%d",stack[i]);
        }
    }
}
void peekB()
{
    int i;
    if(topB==MAX)
    {
        printf("Stack is empty\n");
    }
    else
    {
        for(i=topB;i>MAX;i++)
        {
            printf("\n%d",stack[i]);
        }
    }
}

No comments:

Post a Comment