Queue

using array

#include <stdio.h>
int queue[50],size,front=0,last=0,i;
int main()
{

    int ch;
    int i;
    void enque();
    void deque();
    void display();
    int isfull();
    int isempty();
     printf(“enter size of queue”);
    scanf(“%d”,&size);

    do
    {


        printf(“enter your choice”);
        printf(“1.enque”);
        printf(“2.deque”);
        printf(“3.display”);
        printf(“4.exit”);

        scanf(“%d”,&ch);
        switch(ch)
        {


            case 1:enque();
            break;
            case 2:deque();
            break;
            case 3:display();
            break;
            case 4:exit(0);
            break;
            default:printf(“enter valid choice”);
        }
    }while(ch<=5);
}
void enque()
{
    if(isfull())
    {
        printf(“overflow”);

    }
    else
    {
        int ele;
        printf(“enter element “);
        scanf(“%d”,&ele);
        queue[last]=ele;
        last++;

    }
}
void deque()
{
    int ele;
    if(isempty())
    {
        printf(“underflow”);
    }
    else
    {
        ele=queue[front];
        front++;
        printf(“%d is deleted “,ele);

     }
}
void display()
{
    if(isempty())
    {
        printf(“queue is empty”);
    }
    else
    {
        printf(“elements in queue are”);
        for(i=front;i<last;i++)
        {
            printf(“%d”,queue[i]);
        }
    }
}
int isfull()
{
    if(last==size)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}
int isempty()
{
    if(front==last)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}
 
 

using linked list

#include <stdio.h>
#include <stdlib.h>
typedef struct queue
{
    int data;
    struct queue *link;
}node;
node *front=NULL,*last=NULL;
int main()
{

    void enque();
    void deque();
    void display();
    int ch;
    char op;
    //printf(“enter your choice”);
    printf(“1.enque”);
    printf(“2.deque”);
    printf(“3.display”);
    printf(“4.exit”);

    do
    {
    printf(“enter your choice”);
    scanf(“%d”,&ch);
    switch(ch)
    {
            case 1:enque();
            break;
            case 2:deque();
            break;
            case 3:display();
            break;
            case 4:exit(0);
            break;

            default:printf(“enter valid choice”);
    }
      }while(ch<4);
return 0;
}
void enque()
{
    node *newnode;
    int dp;
    printf(“enter datapart”);
    scanf(“%d”,&dp);
    newnode=(node*)malloc(sizeof(node));
    newnode->data=dp;
    newnode->link=NULL;
    if(front==NULL&&last==NULL)
    {
        front=newnode;
        last=newnode;
    }
    else
    {
        last->link=newnode;
        last=newnode;
    }

}
void deque()
{
    node *temp;
    if(front==last)
    {
        printf(“queue is empty”);
    }
    else
    {
        temp=front;
        printf(“deleted element is %d”,temp->data);
        front=front->link;
        free(temp);
    }
}
void display()
{
    node *temp=front;
    printf(“front->”);
    while(temp!=NULL)
    {
        printf(“%d->”,temp->data);
        temp=temp->link;
    }
}