From 03a3ed8376e2c733e2de3656ef0f53da30a7f4e2 Mon Sep 17 00:00:00 2001 From: Kirill Petrashin Date: Fri, 20 Mar 2026 22:10:59 +0300 Subject: Implement the priority queue (without ppq_reorganize) --- priority_queue.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'priority_queue.h') diff --git a/priority_queue.h b/priority_queue.h index 0dbd161..e24cd26 100644 --- a/priority_queue.h +++ b/priority_queue.h @@ -10,22 +10,24 @@ struct PositionPQNode_s { size_t priority; /* Lower is "better" */ struct PositionPQNode_s *prev; struct PositionPQNode_s *next; -} PositionPQNode_s; +}; typedef struct PositionPQNode_s PositionPQ; /* Create a new PositionPQ with pos and priority */ -PositionPQ ppq_new(Position pos, size_t priority); +PositionPQ *ppq_new(Position pos, size_t priority); /* Insert a pos with priority into a given PositionPQ */ -void ppq_insert(PositionPQ ppq, Position pos, size_t priority); +void ppq_insert(PositionPQ *ppq, Position pos, size_t priority); /* Remove and return the position with the lowest priority */ -Position ppq_pop(PositionPQ ppq); +Position ppq_pop(PositionPQ *ppq); /* Change the priority of a given pos, moving it to a different place in the * linked list ("POTENTIALLY NOT NEEDED" since we don't use different weights */ -void ppq_reprioritize(PositionPQ ppq, Position pos, size_t priority); +void ppq_reprioritize(PositionPQ *ppq, Position pos, size_t priority); + +void ppq_print(PositionPQ *ppq); #endif /* PRIORITY_QUEUE_H_ */ -- cgit v1.2.3