Crossfire Server, Trunk
|
Go to the source code of this file.
Data Structures | |
struct | MinHeap |
Functions | |
void | minheap_free (MinHeap *to_free) |
MinHeap * | minheap_init (int amt, int(*measure_func)(const void *), void(*cleanup_func)(void *)) |
void | minheap_init_static (MinHeap *heap, void **arr, int amt, int(*measure_func)(const void *)) |
int | minheap_insert (MinHeap *heap, void *ob) |
void * | minheap_remove (MinHeap *heap) |
void minheap_free | ( | MinHeap * | to_free | ) |
Cleans the minheap
to_free | The minheap to free. |
Definition at line 226 of file minheap.cpp.
References MinHeap::arr, MinHeap::element_cleanup, and MinHeap::len.
Referenced by teardown().
MinHeap* minheap_init | ( | int | amt, |
int(*)(const void *) | measure_func, | ||
void(*)(void *) | cleanup_func | ||
) |
Function to intialize the minheap
amt | The capacity of the min-heap. |
measure_func | Pointer to the function to measure the data we're storing. |
cleanup_func | Pointer to a given element's cleanup function. Can be NULL if the data does not need to be cleaned up for any reason. |
Definition at line 129 of file minheap.cpp.
References MinHeap::arr, MinHeap::capacity, MinHeap::element_cleanup, fatal(), MinHeap::get_measure, MinHeap::len, and OUT_OF_MEMORY.
Referenced by START_TEST().
void minheap_init_static | ( | MinHeap * | heap, |
void ** | arr, | ||
int | amt, | ||
int(*)(const void *) | measure_func | ||
) |
Initialize the minheap using statically allocated components. It is expected the caller will do any necessary cleanup on data before the components fall out of scope.
It is also expected that the caller ensured arr can hold amt elements.
heap | Pointer to the heap we are initializing. |
arr | Pointer to the array of elements we are using. |
amt | The capacity of the heap |
measure_func | Pointer to the function that gives the calculation the minheap uses to organize elements. |
Definition at line 162 of file minheap.cpp.
References MinHeap::arr, MinHeap::capacity, MinHeap::element_cleanup, MinHeap::get_measure, and MinHeap::len.
Referenced by monster_compute_path(), and START_TEST().
int minheap_insert | ( | MinHeap * | heap, |
void * | ob | ||
) |
Inserts an element into the min-heap
heap | Heap to insert into. |
ob | The data object being inserted. |
Definition at line 184 of file minheap.cpp.
References MinHeap::arr, MinHeap::capacity, MinHeap::len, minheap_get_parent(), minheap_normalize(), and guildjoin::ob.
Referenced by monster_compute_path(), and START_TEST().
void* minheap_remove | ( | MinHeap * | heap | ) |
Pops the top of the minheap off.
heap | Heap to pop from. |
Definition at line 209 of file minheap.cpp.
References MinHeap::arr, MinHeap::len, and minheap_normalize().
Referenced by monster_compute_path(), and START_TEST().