heap.h(3)

NAME
heap.h

SYNOPSIS

#include <Inventor/C/basic.h>
#include <Inventor/SbString.h>

  Typedefs
typedef int cc_heap_compare_cb(void *o1, void *o2)
typedef void cc_heap_print_cb(void *o, SbString &str)
typedef struct cc_heap cc_heap

  Functions
cc_heap * cc_heap_construct (unsigned int size, cc_heap_compare_cb *comparecb, SbBool support_remove)
void cc_heap_destruct (cc_heap *h)
void cc_heap_clear (cc_heap *h)
void cc_heap_add (cc_heap *h, void *o)
void * cc_heap_get_top (cc_heap *h)
void * cc_heap_extract_top (cc_heap *h)
int cc_heap_remove (cc_heap *h, void *o)
int cc_heap_update (cc_heap *h, void *o)
unsigned int cc_heap_elements (cc_heap *h)
SbBool cc_heap_empty (cc_heap *h)
void cc_heap_print (cc_heap *h, cc_heap_print_cb *printcb, SbString &str, SbBool printLeveled=FALSE)

Typedef Documentation

  int cc_heap_compare_cb
A type definition for heap compare callback function. The heap compare function yields true if the first argument of the call appears before the second in the strict weak ordering relation induced by this type, and false otherwise, i.e. cc_heap_compare_cb(x, x) == false

  struct cc_heap cc_heap
A type definition for the cc_heap structure

Function Documentation

  cc_heap* cc_heap_construct (unsigned int size, cc_heap_compare_cb * comparecb, SbBool support_remove)
Construct a heap. size is the initial array size.

For a minimum heap comparecb should return 1 if the first element is less than the second, zero if they are equal or the first element is greater than the second. For a maximum heap comparecb should return 1 if the first element is greater than the second, zero if they are equal or the first element is less than the second.

support_remove specifies if the heap should support removal of elements (other than the top element) after they are added; this requires use of a hash table to be efficient, but as a slight runtime overhead will be incurred for the add and extract_top functions the support can be disabled if you don't need it.

  void cc_heap_destruct (cc_heap * h)
Destruct the heap h.

  void cc_heap_clear (cc_heap * h)
Clear/remove all elements in the heap h.

  void cc_heap_add (cc_heap * h, void * o)
Add the element o to the heap h.

  void* cc_heap_get_top (cc_heap * h)
Returns the top element from the heap h. If the heap is empty, NULL is returned.

  void* cc_heap_extract_top (cc_heap * h)
Returns and removes the top element from the heap h. If the heap is empty, NULL is returned.

  int cc_heap_remove (cc_heap * h, void * o)
Remove o from the heap h; if present TRUE is returned, otherwise FALSE. Please note that the heap must have been created with support_remove.

  int cc_heap_update (cc_heap * h, void * o)
Updates the heap h for new value of existent key o; if key is present TRUE is returned, otherwise FALSE.

  unsigned int cc_heap_elements (cc_heap * h)
Returns the number of elements in the heap h.

  SbBool cc_heap_empty (cc_heap * h)
Returns TRUE of the heap h is empty, otherwise FALSE.

  void cc_heap_print (cc_heap * h, cc_heap_print_cb * printcb, SbString & str, SbBool printLeveled)
Print heap h using a specified callback printcb.

Author

Generated automatically by Doxygen for Coin from the source code.