| GTS Library Reference Manual |
|---|
#include <gts.h>
GtsHeap;
GtsHeap* gts_heap_new (GCompareFunc compare_func);
void gts_heap_insert (GtsHeap *heap,
gpointer p);
gpointer gts_heap_remove_top (GtsHeap *heap);
gpointer gts_heap_top (GtsHeap *heap);
void gts_heap_freeze (GtsHeap *heap);
void gts_heap_thaw (GtsHeap *heap);
void gts_heap_foreach (GtsHeap *heap,
GFunc func,
gpointer user_data);
guint gts_heap_size (GtsHeap *heap);
void gts_heap_destroy (GtsHeap *heap);The basic operations gts_heap_insert() and gts_heap_remove_top() are performed in O(log n) time. Calling gts_heap_freeze(), inserting elements using gts_heap_insert() and calling gts_heap_thaw() allows to build the binary heap in O(n) time.
GtsHeap* gts_heap_new (GCompareFunc compare_func);
compare_func : | a GCompareFunc. |
| Returns : | a new GtsHeap using |
void gts_heap_insert (GtsHeap *heap,gpointer p);
Inserts a new element p in the heap.
heap : | a GtsHeap. |
p : | a pointer to add to the heap. |
gpointer gts_heap_remove_top (GtsHeap *heap);
Removes the element at the top of the heap.
heap : | a GtsHeap. |
| Returns : | the element at the top of the heap. |
gpointer gts_heap_top (GtsHeap *heap);
heap : | a GtsHeap. |
| Returns : | the element at the top of the heap. |
void gts_heap_freeze (GtsHeap *heap);
Freezes the heap. Any subsequent operation will not preserve the heap
property. Used in conjunction with gts_heap_insert() and gts_heap_thaw()
to create a heap in O(n) time.
heap : | a GtsHeap. |
void gts_heap_thaw (GtsHeap *heap);
If heap has been frozen previously using gts_heap_freeze(), reorder it
in O(n) time and unfreeze it.
heap : | a GtsHeap. |
void gts_heap_foreach (GtsHeap *heap,GFunc func,gpointer user_data);
heap : | a GtsHeap. |
func : | the function to call for each element in the heap. |
user_data : | to pass to |
guint gts_heap_size (GtsHeap *heap);
heap : | a GtsHeap. |
| Returns : | the number of items in |
| <<< Basic Macros, functions and data structures | Extended binary heaps >>> |