cavl_test_tree.h 1.1 KB

1234567891011121314151617181920212223
  1. #define CAVL_PARAM_NAME MyTree
  2. #define CAVL_PARAM_FEATURE_COUNTS USE_COUNTS
  3. #define CAVL_PARAM_FEATURE_KEYS_ARE_INDICES 0
  4. #define CAVL_PARAM_FEATURE_ASSOC USE_ASSOC
  5. #define CAVL_PARAM_TYPE_ENTRY struct entry
  6. #define CAVL_PARAM_TYPE_LINK entry_index
  7. #define CAVL_PARAM_TYPE_KEY entry_key
  8. #define CAVL_PARAM_TYPE_ARG entry_ptr
  9. #define CAVL_PARAM_TYPE_COUNT size_t
  10. #define CAVL_PARAM_TYPE_ASSOC assoc_sum
  11. #define CAVL_PARAM_VALUE_COUNT_MAX SIZE_MAX
  12. #define CAVL_PARAM_VALUE_NULL ((entry_index)-1)
  13. #define CAVL_PARAM_VALUE_ASSOC_ZERO 0
  14. #define CAVL_PARAM_FUN_DEREF(arg, link) (&(arg)[(link)])
  15. #define CAVL_PARAM_FUN_COMPARE_ENTRIES(arg, entry1, entry2) B_COMPARE((entry1).ptr->key, (entry2).ptr->key)
  16. #define CAVL_PARAM_FUN_COMPARE_KEY_ENTRY(arg, key1, entry2) B_COMPARE((key1), (entry2).ptr->key)
  17. #define CAVL_PARAM_FUN_ASSOC_VALUE(arg, entry) ((entry).ptr->assoc_value)
  18. #define CAVL_PARAM_FUN_ASSOC_OPER(arg, value1, value2) ((value1) + (value2))
  19. #define CAVL_PARAM_MEMBER_CHILD tree_child
  20. #define CAVL_PARAM_MEMBER_BALANCE tree_balance
  21. #define CAVL_PARAM_MEMBER_PARENT tree_parent
  22. #define CAVL_PARAM_MEMBER_COUNT tree_count
  23. #define CAVL_PARAM_MEMBER_ASSOC assoc_sum