making a queue program

Posted by seventhief on Stack Overflow See other posts from Stack Overflow or by seventhief
Published on 2012-09-29T13:01:51Z Indexed on 2012/09/29 15:38 UTC
Read the original article Hit count: 108

Filed under:
|

Hi can someone help me making a queue program. i want to set the array[0] to be array[1] just in display but in real i am adding value at array[0]. i got how to run the add function to it. but i can't do the view and delete command that will view from ex. array[0] to array[4], when displayed array[1] to array[5] with the value inserted.

#include <stdio.h>
#include <stdlib.h>
#define p printf
#define s scanf

int rear = 0;
int front = 0;
int *q_array = NULL;
int size = 0;

main()
{
    int num, opt;
    char cont[] = { 'y' };
    clrscr();
    p("Queue Program\n\n");
    p("Queue size: ");
    s("%d", &size);
    p("\n");

    if(size > 0)
    {
        q_array = malloc(size * sizeof(int));
        if(q_array == NULL)
        {
            p("ERROR: malloc() failed\n");
            exit(2);
        }
    }
    else
    {
        p("ERROR: size should be positive integer\n");
        exit(1);
    }

while((cont[0] == 'y') || (cont[0] == 'Y'))
{
    clrscr();
    p("Queue Program");
    p("\n\nQueue size: %d\n\n", size);
    p("MAIN MENU\n1. Add\n2. Delete\n3. View");
    p("\n\nYour choice: ");
    s("%d", &opt);
    p("\n");

    switch(opt) {
        case 1:
            if(rear==size)
            {
                p("You can't add more data");
            }
            else
            {
                p("Enter data for Queue[%d]: ", rear+1);
                s("%d", &num);
                add(num);
            }
            break;
        case 2:
            delt();
            break;
        case 3:
            view();
            break;
    }
    p("\n\nDo you want to continue? (Y\/N)");
    s("%s", &cont[0]);
}
}
add(int a)
{
    q_array[rear]=a;
    rear++;
}
delt()
{
    if(front==rear)
    {
        p("Queue Empty");
    }
    else
    {
        p("Queue[%d] = %d removed.", front, q_array[front]);
        front++;
    }
}
view()
{
    int i;
    for(i=front;i<=rear;i++)
        p("\nQueue[%d] = %d", i, q_array[i]);
}

© Stack Overflow or respective owner

Related posts about c

    Related posts about queue