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_