UFO: Alien Invasion
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
pqueue.h
Go to the documentation of this file.
1 
6 /*
7 Originally written by Justin-Heyes Jones
8 Modified by Shlomi Fish, 2000
9 Modified by Florian Festi, 2007
10 
11 This file is in the public domain (it's uncopyrighted).
12 
13 Check out Justin-Heyes Jones' A* page from which this code has
14 originated:
15  http://www.geocities.com/jheyesjones/astar.html
16 */
17 
18 #pragma once
19 
20 #include "../shared/shared.h"
21 
29 
30 typedef struct priorityQueueElement_s {
34 
39 typedef struct priorityQueue_s {
40  uint32_t maxSize;
41  uint32_t currentSize;
44 
45 void PQueueInitialise(priorityQueue_t* pq, uint32_t maxElements);
46 void PQueueFree(priorityQueue_t* pq);
47 
48 #define PQueueIsEmpty(pq) ((pq)->currentSize == 0)
49 void PQueuePush(priorityQueue_t* pq, const pos4_t item, priorityQueueRating_t rating);
50 void PQueuePop(priorityQueue_t* pq, pos4_t item);
uint32_t maxSize
Definition: pqueue.h:40
struct priorityQueueElement_s priorityQueueElement_t
int priorityQueueRating_t
Definition: pqueue.h:28
pos_t pos4_t[4]
Definition: ufotypes.h:59
the priority queue struct the actual data is stored in priorityQueueElement_t
Definition: pqueue.h:39
uint32_t currentSize
Definition: pqueue.h:41
void PQueueInitialise(priorityQueue_t *pq, uint32_t maxElements)
initialise the priority queue with a maximum size of maxelements.
Definition: pqueue.cpp:36
void PQueuePush(priorityQueue_t *pq, const pos4_t item, priorityQueueRating_t rating)
Definition: pqueue.cpp:47
void PQueuePop(priorityQueue_t *pq, pos4_t item)
remove the first node from the pqueue and provide a pointer to it
Definition: pqueue.cpp:91
priorityQueueElement_t * elements
Definition: pqueue.h:42
void PQueueFree(priorityQueue_t *pq)
free up memory for pqueue
Definition: pqueue.cpp:83
priorityQueueRating_t rating
Definition: pqueue.h:32
struct priorityQueue_s priorityQueue_t
the priority queue struct the actual data is stored in priorityQueueElement_t