C Program to implement QUEUE operations using Linked Lists

C Program to implement QUEUE operations using Linked Lists
Source: Dr. G T Raju, Professor & Head, Dept. of CSE, RNSIT

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include <stdlib.h>
typedef struct node
{
int data;
struct node *link;
}NODE;
 
void Insert(int);
int  Delete();
void Display();
NODE *front,*rear;   /* Global Declarations */
 
main()
{
/* Main Program */
int opn,elem;
front=rear=NULL;
do
{
clrscr();
printf("\n ### Linked List Implementation of QUEUE Operations ### \n\n");
printf("\n Press 1-Insert, 2-Delete, 3-Display,4-Exit\n");
printf("\n Your option ? ");
scanf("%d",&opn);
switch(opn)
{
case 1:
printf("\n\nRead the Element to be Inserted ?");
scanf("%d",&elem);
Insert(elem);
break;
case 2:
elem=Delete();
if(elem != -1)
printf(" Deleted Node(From Front)with the Data: %d\n",elem);
break;
case 3: printf("Linked List Implementation of Queue: Status:\n");
Display(); break;
case 4: printf("\n\n Terminating \n\n"); break;
default: printf("\n\nInvalid Option !!! Try Again !! \n\n");
break;
}
printf("\n\n\n\n  Press a Key to Continue . . . ");
getch();
}while(opn != 4);
}
 
void Insert(int info)
{
NODE *temp;
temp=(NODE *)malloc(sizeof(NODE));
if( temp == NULL)
printf(" Out of Memory !! Overflow !!!");
else
{
temp->data=info;
temp->link=NULL;
if(front == NULL) { front = rear = temp; } /* First Node? */
else
{ rear->link=temp; rear = temp; }       /* Insert End */
printf(" Node has been inserted at End Successfully !!");
}
}
 
int Delete()
{
int info;
NODE *t;
if( front ==  NULL) { printf(" Underflow!!!"); return -1; }
else
{
t=front;
info=front->data;
if(front == rear) rear=NULL;
front=front->link;
t->link=NULL;
free(t);
return(info);
}
}
 
void Display()
{
NODE *t;
if( front == NULL) printf("Empty Queue\n");
else
{
t=front;
printf("Front->");
while(t)
{
printf("[%d]->",t->data);
t=t->link;
}
printf("Rear\n");
}
}
Ansten Lobo

3 thoughts on “C Program to implement QUEUE operations using Linked Lists

  1. can u tell me how the recursive struct works ?
    please explain this part
    typedef struct node
    {
    int data; struct node *link; }NODE;

  2. can u tell me how the recursive struct works ?
    please explain this part
    typedef struct node
    {
    int data;
    struct node *link;
    }NODE;

Leave a Reply

Your email address will not be published. Required fields are marked *

Get the latest updates on your inbox

Be the first to receive the latest updates from Codesdoc by signing up to our email subscription.

    StudentProjects.in