priority queue with linked list

profileaaditya1996
PQLLFunctionality_Mahato.c

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ #include <stdio.h> #include <stdlib.h> #include "PQLL_Mahato.h" int peek(Node** head) { return (*head)->data; } //Removes the element with the //highest priority from the list void dequeue(Node** head) { Node* temp = *head; (*head) = (*head)->next; free(temp); } // function to check is list is empty int isEmpty(Node** head) { return (*head) == NULL; } Node* newNode(char d, int p) { Node* temp = (Node*)malloc(sizeof(Node)); temp->data = d; temp->priority = p; temp->next = NULL; return temp; } // Function to enqueue according to priority void enqueue (Node** head, char d, int p) { Node* start = (*head); // Create new Node Node* temp = newNode(d, p); // special case: The head of list has lesser // priority than new node. So insert new // node before head node and change head node. if ((*head)->priority > p) { // Insert New node before head temp->next = *head; (*head) = temp; } else { // Traverse the list and find a // position to insert a new node while (start->next != NULL && start->next->priority < p){ start = start->next; } // Either at the ends of the list // or at the required position temp->next = start->next; start->next = temp; } }