insert nod, new, into sorted priority queue 4. Priority Queue (3 points) Suppose
ID: 3867941 • Letter: I
Question
insert nod, new, into sorted priority queue
Explanation / Answer
void insert(struct pq *queue, struct node *new){
struct node *ptr;
ptr = queue->front;
if (ptr == NULL){
new->prev = new;
new->next = new;
queue->front = new;
queue->rear = new;
return;
}
if (ptr->info > new->info){
new->next = ptr;
new->prev = ptr->prev;
ptr->prev = new;
queue->front = new;
}
else {
while (ptr != NULL && ptr->info < new->info){
ptr = ptr->next;
}
if (ptr == NULL){
new->next = queue->rear->next;
new->prev = queue->rear;
queue->rear->next = new;
queue->rear = new;
}
else {
new->next = ptr;
ptr->prev->next = new;
new->prev = ptr->prev;
ptr->prev = new;
}
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.