liblash

A bianry tree implementation used for game development from scratch
git clone git://holbrook.no/liblash.git
Log | Files | Refs | LICENSE

lash_tree2.h (795B)


      1 #ifndef LASH_TREE_H_
      2 #define LASH_TREE_H_
      3 
      4 typedef struct lash_tree_t lash_tree_t;
      5 
      6 struct lash_tree_t {
      7 	long int *val;
      8 	void **item;
      9 	unsigned int shiftpos;
     10 	unsigned int count;
     11 	unsigned int capacity;
     12 	unsigned int foldbackthreshold;
     13 	int average;
     14 };
     15 
     16 #ifdef __cplusplus 
     17 extern "C" {
     18 #endif
     19 
     20 lash_tree_t * lash_treeInit(lash_tree_t *tree, const unsigned int size) ;
     21 int lash_treePush(lash_tree_t *tree, const long int sortvalue, void *item);
     22 int lash_treeShift(lash_tree_t *tree, long int *sortvalue, void **item);
     23 int lash_treeRemove(lash_tree_t *tree, unsigned int position, long int *sortvalue, void **item);
     24 void lash_treeFree(lash_tree_t *tree);
     25 int lash_treeProcess(lash_tree_t *tree, unsigned int currentposition, int direction);
     26 #ifdef __cplusplus 
     27 }
     28 #endif
     29 
     30 
     31 #endif // LASH_TREE_H_