Practical 8 DS
Practical 8 DS
1. Write a program to perform the following operations in linear queue – Addition, Deletion
and Traversing.
Input:
#include <stdio.h>
#define MAX 5
int queue[MAX];
int isFull() {
int isEmpty() {
if (isFull()) {
printf("Queue is full\n");
return;
}
23SE02IT017 SECE2221
if (isEmpty()) {
front = 0;
queue[rear] = element;
int dequeue() {
if (isEmpty()) {
printf("Queue is empty\n");
return -1;
if (front == rear) {
} else {
return element;
void traverse() {
23SE02IT017 SECE2221
if (isEmpty()) {
printf("Queue is empty\n");
return;
int i = front;
while (i != rear) {
i = (i + 1) % MAX;
printf("%d\n", queue[rear]);
int main() {
enqueue(10);
enqueue(20);
enqueue(30);
enqueue(40);
enqueue(50);
traverse();
traverse();
enqueue(60);
traverse();
return 0;
Output:
2. Write a program to perform the following operations in linear queue – Addition, Deletion
and Traversing using Switch case.
23SE02IT017 SECE2221
Input:
#include <stdio.h>
#include <stdlib.h>
#define MAX 3
typedef struct {
int items[MAX];
} CircularQueue;
q->front = -1;
q->rear = -1;
if (isFull(q)) {
printf("Queue is full!\n");
return;
if (isEmpty(q)) {
23SE02IT017 SECE2221
q->front = 0;
q->items[q->rear] = value;
if (isEmpty(q)) {
printf("Queue is empty!\n");
return -1;
if (q->front == q->rear) {
} else {
return value;
if (isEmpty(q)) {
printf("Queue is empty!\n");
23SE02IT017 SECE2221
return;
printf("Queue: ");
int i = q->front;
do {
i = (i + 1) % MAX;
printf("\n");
int main() {
CircularQueue q;
initQueue(&q);
enqueue(&q, 10);
enqueue(&q, 20);
enqueue(&q, 30);
traverseQueue(&q);
dequeue(&q);
traverseQueue(&q);
enqueue(&q, 40);
traverseQueue(&q);
return 0;
}
23SE02IT017 SECE2221
Output: