Rizvi College of Engineering, Mumbai
_____________________________________________________________________________________
RIZVI EDUCATION SOCIETY’S
Rizvi College of Engineering
∎Approved by AICTE ∎Recognized by DTE ∎Affiliated to University of Mumbai
∎Accredited B+ by NAAC
New Rizvi Educational Complex, Off Carter Rd, Bandra West, Mumbai-400050
Experiment No. 5
Title Array Implementation of Linear Queue.
Name Suyash Pawar
Year/Branch FE/AIDS
Roll No. 17
UIN 241A017
Evaluation Rubric Table
Criteria Points
Correctness of the program
Clarity of documentation
Delivery
Total
Rizvi College of Engineering, Mumbai
_____________________________________________________________________________________
Aim: To Implement Linear Queue ADT using Array.
Theory: A queue data structure can be implemented using a one dimensional array. The queue
implemented using an array stores only a fixed number of data values. The implementation of queue data
structure using arrays is very simple. Just define a one dimensional array of specific size and insert or delete
the values into that array by using FIFO (First In First Out) principle with the help of variables 'front' and
'rear'. Initially both 'front' and 'rear' are set to -1. Whenever, we want to insert a new value into the queue,
increment the 'rear' value by one and then insert at that position. Whenever we want to delete a value from
the queue, then delete the element which is at 'front' position and increment 'front' value by one.
Algorithm:
Queue Operations using Array
Creation of Queue
Before we implement actual operations, first follow the below steps to create an empty queue.
● Step 1 - Include all the header files which are used in the program and define a constant 'SIZE' with
specific value.
● Step 2 - Declare all the user defined functions which are used in queue implementation.
● Step 3 - Create a one dimensional array with above defined SIZE (int queue[SIZE])
● Step 4 - Define two integer variables 'front' and 'rear' and initialize both with '-1'. (int front = -1,
rear = -1)
● Step 5 - Then implement the main method by displaying a menu of operations list and make suitable
function calls to perform operations selected by the user on queue.
enQueue(value) - Inserting value into the queue
In a queue data structure, enQueue() is a function used to insert a new element into the queue. In a queue,
the new element is always inserted at the rear position. The enQueue() function takes one integer value as a
parameter and inserts that value into the queue. We can use the following steps to insert an element into the
queue...
● Step 1 - Check whether the queue is FULL. (is rear = =SIZE-1 ?)
● Step 2 - If it is FULL, then display "Queue is FULL. Insertion is not possible " and terminate the
function.
● Step 3 - If it is NOT FULL, then increment the rear value by one (rear++) and set queue[rear] =
value, also if front =-1 then make front=0.
deQueue() - Deleting a value from the Queue
In a queue data structure, deQueue() is a function used to delete an element from the queue. In a queue, the
element is always deleted from the front position. The deQueue() function does not take any value as a
Rizvi College of Engineering, Mumbai
_____________________________________________________________________________________
parameter. We can use the following steps to delete an element from the queue...
● Step 1 - Check whether the queue is EMPTY. (is front > rear or front = rear = -1)
● Step 2 - If it is EMPTY, then display "Queue is EMPTY! Deletion is not possible!" and terminate
the function.
● Step 3 - If it is NOT EMPTY, then increment the front value by one (front ++). Then display
queue[front] as a deleted element. Then check whether front is greater than rear (is front >rear ?),
if it TRUE, then set both front and rear to '-1' (front = rear = -1).
display() - Displays the elements of a Queue
We can use the following steps to display the elements of a queue...
● Step 1 - Check whether the queue is EMPTY. (is front > rear or front = rear = -1) ● Step 2 - If it
is EMPTY, then display "Queue is EMPTY" and terminate the function.
● Step 3 - If it is NOT EMPTY, then define an integer variable 'i' and set 'i = front'.
● Step 4 - Display 'queue[i]' value and increment 'i' value by one (i++). Repeat the same until 'i' value
reaches to rear (i <= rear)
Program: (students should develop their own prog.)
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
void enQueue(int); void deQueue(); void display(); int
queue[SIZE], front = -1, rear = -1; int main() { int value,
choice; while (1) { printf("\n\n***** MENU *****\
n"); printf("1. Insertion\n2. Deletion\n3. Display\n4.
Exit"); printf("\nEnter your choice: ");
scanf("%d", &choice); switch (choice) { case
1:
printf("Enter the value to be inserted:
"); scanf("%d", &value);
enQueue(value); break; case 2:
deQueue(); break; case 3:
display(); break; case 4:
exit(0); default:
printf("\nWrong selection!!! Try again!!!");
Rizvi College of Engineering, Mumbai
_____________________________________________________________________________________
} } return 0; } void enQueue(int value) { if
(rear == SIZE - 1) printf("\nQueue is Full!
Insertion is not possible!"); else { if (front == -
1) front = 0; rear++; queue[rear] =
value; printf("\nInsertion success!!!");
} void deQueue()
if (front == -1 || front > rear) printf("\nQueue is
Empty!!! Deletion is not possible!!!"); else { printf("\
nDeleted : %d", queue[front]); front++;
if (front > rear)
front = rear = -1;
} void display() { if (front == -1
|| front > rear) printf("\nQueue
is Empty!!!"); else { int i;
printf("\nQueue elements are:\n");
for (i = front; i <= rear; i++)
printf("%d\t", queue[i]);
Output: (Students should put screenshot of output here)
Rizvi College of Engineering, Mumbai
_____________________________________________________________________________________
Conclusion: (Students should write proper conclusion)
CO Covered: