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