Queue implementation in C

               Queue is another linear data structures. Have you stand in a queue. People who stands in the front will go first. Same principle is applicable here. This principle is called FIFO(First In First Out).

Functions and variables in queue:

  • First element denotes front.
  • Last element represents rear.
  • To insert an element in rear end use enqueue ().
  • To delete an element, consider dequeue() function.
  • ‘peek()’ is a function which makes the user to view the front element. It doesn’t delete the element.

Let us create a queue using arrays in C.

Program:

#include <stdio.h>

#include <stdlib.h>

#define MAX 9   // Let us declare the maximum size of queue

int queue[MAX];

int front = -1, rear = -1;

// queue is full or not

int isFull() {

    return (rear == MAX - 1);

}

// Queue empty checking

int isEmpty() {

    return (front == -1 || front > rear);

}

// Add the elements to the queue

void enqueue(int data) {

    if (isFull()) {

        printf("Queue is full!\n");

        return;

    }

    if (front == -1) front = 0; 

    queue[++rear] = data;

    printf("%d inserted into queue.\n", data);

}

// Delete an element from queue

void dequeue() {

    if (isEmpty()) {

        printf("Queue is empty!\n");

        return;

    }

    printf("%d removed from queue.\n", queue[front++]);

}

// To view the front element

void peek() {

    if (isEmpty()) {

        printf("Queue is empty!\n");

        return;

    }

    printf("Front element is: %d\n", queue[front]);

}

// Print the queue elements

void display() {

    if (isEmpty()) {

        printf("Queue is empty!\n");

        return;

    }

    printf("Queue elements: ");

    for (int i = front; i <= rear; i++) {

        printf("%d ", queue[i]);

    }

    printf("\n");

}

int main() {

    enqueue(100);

    enqueue(24);

    enqueue(36);

    enqueue(120);

    enqueue(67);

    display();

    dequeue();

    peek();

    dequeue();

    peek();

    display();

    return 0;

}

Output:

100 inserted into queue.

24 inserted into queue.

36 inserted into queue.

120 inserted into queue.

67 inserted into queue.

Queue elements: 100 24 36 120 67

100 removed from queue.

Front element is: 24

24 removed from queue.

Front element is: 36

Queue elements: 36 120 67

Yes. The queue implementation in C is successful. You can easily understand this concept. Keep Coding!!!

Comments

Popular posts from this blog

How to create a XML DTD for displaying student details

Symmetric Encryption in java

Java NIO examples to illustrate channels and buffers.