aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--priority_queue.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/priority_queue.c b/priority_queue.c
index 1cf0ac0..79377c3 100644
--- a/priority_queue.c
+++ b/priority_queue.c
@@ -55,8 +55,12 @@ void ppq_insert(PositionPQ *ppq, Position pos, size_t priority) {
}
Position ppq_pop(PositionPQ *ppq) {
- (void)ppq;
- todo();
+ Position pos = ppq->pos;
+ ppq->next->prev = NULL;
+ PositionPQ *next = ppq->next;
+ free(ppq);
+ ppq = next;
+ return pos;
}
void ppq_reprioritize(PositionPQ *ppq, Position pos, size_t priority) {