QUEUE USING POINTERS by smd

 program:


#include <stdio.h>

#include <stdlib.h>


int count = 0;


struct node {

    int data;

    struct node *next;

};  


struct node *front = NULL, *rear = NULL, *newn, *temp;


void enqueue() {

    int x;

    printf("Enter enqueue value: ");

    scanf("%d", &x);


    newn = (struct node*)malloc(sizeof(struct node));

    newn->data = x;

    newn->next = NULL;


    if (front == NULL && rear == NULL) {

        front = rear = newn;

    } else {

        rear->next = newn;

        rear = newn;

    }

    count++;

}


void dequeue() {

    if (count == 0) {

        printf("Queue is underflow\n");

    } else {

        printf("%d is deleted\n", front->data);

        temp = front;

        front = front->next;

        free(temp);

        count--;

        if (front == NULL) {  // If queue becomes empty condition after dequeue

            rear = NULL;

        }

    }

}


void display() {

    if (count == 0) {

        printf("Queue is empty\n");

    } else {

        temp = front;

        printf("Queue elements are: ");

        while (temp != NULL) {

            printf("%d->", temp->data);

            temp = temp->next;

        }

        printf("NULL\n");

    }

}


int main() {

    int choice = 0;

    while (choice != 4) {

        printf("\nChoose an option:\n");

        printf("1. Enqueue\n2. Dequeue\n3. Display\n4. Exit\n");

        scanf("%d", &choice);

        switch (choice) {

            case 1:

                enqueue();

                break;

            case 2:

                dequeue();

                break;

            case 3:

                display();

                break;

            case 4:

                printf("Exiting.....\n");

                break;

            default:

                printf("Invalid entry\n");

                break;

        }

    }

    return 0;

}














output:



Choose an option:

1. Enqueue

2. Dequeue

3. Display

4. Exit

1

Enter enqueue value: 10


Choose an option:

1. Enqueue

2. Dequeue

3. Display

4. Exit

1

Enter enqueue value: 20


Choose an option:

1. Enqueue

2. Dequeue

3. Display

4. Exit

1

Enter enqueue value: 30


Choose an option:

1. Enqueue

2. Dequeue

3. Display

4. Exit

3

Queue elements are: 10->20->30->NULL


Choose an option:

1. Enqueue

2. Dequeue

3. Display

4. Exit

2

10 is deleted


Choose an option:

1. Enqueue

2. Dequeue

3. Display

4. Exit

2

20 is deleted


Choose an option:

1. Enqueue

2. Dequeue

3. Display

4. Exit

3

Queue elements are: 30->NULL


Choose an option:

1. Enqueue

2. Dequeue

3. Display

4. Exit

4

Exiting...





Comments

Popular posts from this blog

SINGLE LINKED LIST by smd

CLL by smd

QUEUE USING ARRAYS by smd