Table of Contents

    Implementing a Queue Using Stacks: Step-by-Step Guide

    Implementing a Queue Using Stacks: Step-by-Step Guide

    Implement queue using stack

    Function to create a queue

    /*Function to create a queue*/
    void create()
    {
        top1 = top2 = -1;
    }

    Function to push the element on to the stack

    /*Function to push the element on to the stack*/
    void push1(int data)
    {
        st1[++top1] = data;
    }

    Function to pop the element from the stack

    /*Function to pop the element from the stack*/
    int pop1()
    {
        return(st1[top1--]);
    }

    Function to push an element on to stack

    /*Function to push an element on to stack*/
    void push2(int data)
    {
        st2[++top2] = data;
    }

    Function to pop an element from th stack

    /*Function to pop an element from th stack*/
     
    int pop2()
    {
        return(st2[top2--]);
    }

    Function to add an element into the queue using stack

    /*Function to add an element into the queue using stack*/
    void enqueue()
    {
        int data, i;
     
        printf("Enter data into queue");
        scanf("%d", &data);
        push1(data);
        count++;
    }

    Function to delete an element from the queue using stack

    /*Function to delete an element from the queue using stack*/
     
    void dequeue()
    {
        int i;
     
        for (i = 0;i

    Function to display the elements in the stack

    /*Function to display the elements in the stack*/
     
    void display()
    {
        int i;
     
        for (i = 0;i

    C Program to Implement Queues using Stacks

    /*
     * C Program to Implement Queues using Stacks
     */
    #include 
    #include 
     
    void push1(int);
    void push2(int);
    int pop1();
    int pop2();
    void enqueue();
    void dequeue();
    void display();
    void create();
     
    int st1[100], st2[100];
    int top1 = -1, top2 = -1;
    int count = 0;
     
    void main()
    {
        int ch;
     
        printf("\n1 - Enqueue element into queue: ");
        printf("\n2 - Dequeu element from queue: ");
        printf("\n3 - Display from queue: ");
        printf("\n4 - Exit");
        create();
        while (1)
        {
            printf("\nEnter choice: ");
            scanf("%d", &ch);
            switch (ch)
            {
            case 1:
                enqueue();
                break;
            case 2:
                dequeue();
                break;
            case 3:
                display();
                break;
            case 4:
                exit(0);
            default:
                printf("Wrong choice");
            }
        }
    }
     
    /*Function to create a queue*/
    void create()
    {
        top1 = top2 = -1;
    }
     
    /*Function to push the element on to the stack*/
    void push1(int data)
    {
        st1[++top1] = data;
    }
     
    /*Function to pop the element from the stack*/
    int pop1()
    {
        return(st1[top1--]);
    }
     
    /*Function to push an element on to stack*/
    void push2(int data)
    {
        st2[++top2] = data;
    }
     
    /*Function to pop an element from th stack*/
     
    int pop2()
    {
        return(st2[top2--]);
    }
     
    /*Function to add an element into the queue using stack*/
    void enqueue()
    {
        int data, i;
     
        printf("Enter data into queue: ");
        scanf("%d", &data);
        push1(data);
        count++;
    }
     
    /*Function to delete an element from the queue using stack*/
     
    void dequeue()
    {
        int i;
     
        for (i = 0;i

    Output:

    1 - Enqueue element into queue:
    2 - Dequeu element from queue:
    3 - Display from queue:
    4 - Exit
    Enter choice: 1
    Enter data into queue: 10
    
    Enter choice: 1
    Enter data into queue: 12
    
    Enter choice: 3
     10  12
    Enter choice: 2
    
    Enter choice: 3
     12
    Enter choice: 4
    Press any key to continue . . .