New paste Repaste Download
#include <stdio.h>
#include <stdlib.h>
typedef struct Node { int data; int prio; struct Node* next; } Node;
Node* head = NULL;
void insert(int d, int p) {
    Node* t = (Node*)malloc(sizeof(Node)); t->data = d; t->prio = p;
    if (!head || head->prio < p) { t->next = head; head = t; }
    else {
        Node* curr = head;
        while (curr->next && curr->next->prio >= p) curr = curr->next;
        t->next = curr->next; curr->next = t;
    }
}
void pop() {
    if(!head) { printf("Empty\n"); return; }
    Node* t = head; printf("Served: %d\n", t->data); head = head->next; free(t);
}
// New Display Function
void display() {
    if (!head) {
        printf("Queue is Empty\n");
        return;
    }
    Node* curr = head;
    printf("Priority Queue: \n");
    printf("[Data, Priority] -> ");
    while (curr != NULL) {
        printf("[%d, P:%d]", curr->data, curr->prio);
        if (curr->next != NULL) printf(" -> ");
        curr = curr->next;
    }
    printf("\n");
}
int main() {
    int choice, d, p;
    while(1) {
        printf("\n1. Insert (Value & Priority)\n2. Dequeue\n3. Display\n4. Exit\nEnter choice: ");
        scanf("%d", &choice);
        
        if(choice == 1) {
            printf("Enter Value and Priority (Higher number = Higher Priority): ");
            scanf("%d %d", &d, &p);
            insert(d, p);
        }
        else if(choice == 2) pop();
        else if(choice == 3) display();
        else break;
    }
    return 0;
}
Filename: None. Size: 1kb. View raw, , hex, or download this file.

This paste expires on 2026-07-02 07:34:38.158817+00:00. Pasted through web.