src/cx/tree.h

changeset 989
8aa57a7fecc4
parent 988
15b3ca7ee33f
child 993
b642eca4b956
equal deleted inserted replaced
988:15b3ca7ee33f 989:8aa57a7fecc4
952 * 952 *
953 * \note This function will also register an advanced destructor which 953 * \note This function will also register an advanced destructor which
954 * will free the nodes with the allocator's free() method. 954 * will free the nodes with the allocator's free() method.
955 * 955 *
956 * @param allocator the allocator that shall be used 956 * @param allocator the allocator that shall be used
957 * (if \c NULL, a default stdlib allocator will be used)
957 * @param create_func a function that creates new nodes 958 * @param create_func a function that creates new nodes
958 * @param search_func a function that compares two nodes 959 * @param search_func a function that compares two nodes
959 * @param search_data_func a function that compares a node with data 960 * @param search_data_func a function that compares a node with data
960 * @param loc_parent offset in the node struct for the parent pointer 961 * @param loc_parent offset in the node struct for the parent pointer
961 * @param loc_children offset in the node struct for the children linked list 962 * @param loc_children offset in the node struct for the children linked list
965 * @param loc_next offset in the node struct for the next pointer 966 * @param loc_next offset in the node struct for the next pointer
966 * @return the new tree 967 * @return the new tree
967 * @see cxTreeCreateSimple() 968 * @see cxTreeCreateSimple()
968 * @see cxTreeCreateWrapped() 969 * @see cxTreeCreateWrapped()
969 */ 970 */
970 cx_attr_nonnull 971 cx_attr_nonnull_arg(2, 3, 4)
971 cx_attr_nodiscard 972 cx_attr_nodiscard
972 cx_attr_malloc 973 cx_attr_malloc
973 cx_attr_dealloc(cxTreeDestroy, 1) 974 cx_attr_dealloc(cxTreeDestroy, 1)
974 CxTree *cxTreeCreate( 975 CxTree *cxTreeCreate(
975 const CxAllocator *allocator, 976 const CxAllocator *allocator,
1014 * where neither the create function, the search function, nor a destructor 1015 * where neither the create function, the search function, nor a destructor
1015 * will be set. If you wish to use any of this functionality for the wrapped 1016 * will be set. If you wish to use any of this functionality for the wrapped
1016 * tree, you need to specify those functions afterwards. 1017 * tree, you need to specify those functions afterwards.
1017 * 1018 *
1018 * @param allocator the allocator that was used for nodes of the wrapped tree 1019 * @param allocator the allocator that was used for nodes of the wrapped tree
1020 * (if \c NULL, a default stdlib allocator is assumed)
1019 * @param root the root node of the tree that shall be wrapped 1021 * @param root the root node of the tree that shall be wrapped
1020 * @param loc_parent offset in the node struct for the parent pointer 1022 * @param loc_parent offset in the node struct for the parent pointer
1021 * @param loc_children offset in the node struct for the children linked list 1023 * @param loc_children offset in the node struct for the children linked list
1022 * @param loc_last_child optional offset in the node struct for the pointer to 1024 * @param loc_last_child optional offset in the node struct for the pointer to
1023 * the last child in the linked list (negative if there is no such pointer) 1025 * the last child in the linked list (negative if there is no such pointer)
1024 * @param loc_prev optional offset in the node struct for the prev pointer 1026 * @param loc_prev optional offset in the node struct for the prev pointer
1025 * @param loc_next offset in the node struct for the next pointer 1027 * @param loc_next offset in the node struct for the next pointer
1026 * @return the new tree 1028 * @return the new tree
1027 * @see cxTreeCreate() 1029 * @see cxTreeCreate()
1028 */ 1030 */
1029 cx_attr_nonnull 1031 cx_attr_nonnull_arg(2)
1030 cx_attr_nodiscard 1032 cx_attr_nodiscard
1031 cx_attr_malloc 1033 cx_attr_malloc
1032 cx_attr_dealloc(cxTreeDestroy, 1) 1034 cx_attr_dealloc(cxTreeDestroy, 1)
1033 CxTree *cxTreeCreateWrapped( 1035 CxTree *cxTreeCreateWrapped(
1034 const CxAllocator *allocator, 1036 const CxAllocator *allocator,

mercurial