Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Programming Problems: Simple Queue +--------------------------------------+ Your

ID: 3697830 • Letter: P

Question

 Programming Problems: Simple Queue         +--------------------------------------+         Your task in this assignment is complete Phase I of Project II. In Project II         with Phase I, you are asked to write a simple queue that handles integer data.         Please the skelton code that is included in this assignment for more detail.           Requirements         +--------------------------------------+          1. The queue should handle integer data.          2. The queue should be based on linked list.          3. Your code should demonistrate that you can perform the "enqueue" and             "dequeue" operation 

Explanation / Answer

/*
* C Program to Implement Queue Data Structure using Linked List
*/
#include <stdio.h>
#include <stdlib.h>

struct node
{
int info;
struct node *ptr;
}*front,*rear,*temp,*front1;

void enq(int data);
void deq();
void display();
void create();
void main()
{
int no, ch, e;
printf(" 1 - Enque");
printf(" 2 - Deque");
printf(" 5 - Exit");
printf(" 6 - Display");
create();
while (1)
{
printf(" Enter choice : ");
scanf("%d", &ch);
switch (ch)
{
case 1:
printf("Enter data : ");
scanf("%d", &no);
enq(no);
break;
case 2:
deq();
break;
case 3:
e = frontelement();
if (e != 0)
printf("Front element : %d", e);
else
printf(" No front element in Queue as queue is empty");
break;
case 5:
exit(0);
case 6:
display();
break;
default:
printf("Wrong choice, Please enter correct choice ");
break;
}
}
}
/* Create an empty queue */
void create()
{
front = rear = NULL;
}
/* Enqueing the queue */
void enq(int data)
{
if (rear == NULL)
{
rear = (struct node *)malloc(1*sizeof(struct node));
rear->ptr = NULL;
rear->info = data;
front = rear;
}
else
{
temp=(struct node *)malloc(1*sizeof(struct node));
rear->ptr = temp;
temp->info = data;
temp->ptr = NULL;
rear = temp;
}
}

/* Displaying the queue elements */
void display()
{
front1 = front;
if ((front1 == NULL) && (rear == NULL))
{
printf("Queue is empty");
return;
}
while (front1 != rear)
{
printf("%d ", front1->info);
front1 = front1->ptr;
}
if (front1 == rear)
printf("%d", front1->info);
}

/* Dequeing the queue */
void deq()
{
front1 = front;
if (front1 == NULL)
{
printf(" Error: Trying to display elements from empty queue");
return;
}
else
if (front1->ptr != NULL)
{
front1 = front1->ptr;
printf(" Dequed value : %d", front->info);
free(front);
front = front1;
}
else
{
printf(" Dequed value : %d", front->info);
free(front);
front = NULL;
rear = NULL;
}
}