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