Tue, 18 Mar 2025 19:03:18 +0100
basic structure for tree.h documentation
relates to #451
1143
0559812df10c
assign proper names to the documentation topics
Mike Becker <universe@uap-core.de>
parents:
1142
diff
changeset
|
1 | # Tree |
1142
9437530176bc
add symbols that need documentation as TODOs
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
2 | |
1190
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
3 | <warning> |
1252
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
4 | TODO: intro text |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
5 | </warning> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
6 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
7 | ```C |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
8 | #include <cx/tree.h> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
9 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
10 | typedef void *(*cx_tree_node_create_func)( |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
11 | const void *data, void *context); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
12 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
13 | typedef int (*cx_tree_search_data_func)( |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
14 | const void *node, const void *data); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
15 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
16 | typedef int (*cx_tree_search_func)( |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
17 | const void *node, const void *new_node); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
18 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
19 | typedef void (*cx_tree_relink_func)( |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
20 | void *node, const void *old_parent, const void *new_parent); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
21 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
22 | #define CX_TREE_NODE_BASE(type) |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
23 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
24 | #define cx_tree_node_base_layout |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
25 | ``` |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
26 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
27 | ## Create |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
28 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
29 | ```C |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
30 | #include <cx/tree.h> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
31 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
32 | CxTree *cxTreeCreate(const CxAllocator *allocator, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
33 | cx_tree_node_create_func create_func, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
34 | cx_tree_search_func search_func, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
35 | cx_tree_search_data_func search_data_func, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
36 | ptrdiff_t loc_parent, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
37 | ptrdiff_t loc_children, ptrdiff_t loc_last_child, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
38 | ptrdiff_t loc_prev, ptrdiff_t loc_next); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
39 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
40 | CxTree *cxTreeCreateSimple(const CxAllocator *allocator, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
41 | cx_tree_node_create_func create_func, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
42 | cx_tree_search_func search_func, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
43 | cx_tree_search_data_func search_data_func); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
44 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
45 | CxTree *cxTreeCreateWrapped(const CxAllocator *allocator, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
46 | void *root, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
47 | ptrdiff_t loc_parent, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
48 | ptrdiff_t loc_children, ptrdiff_t loc_last_child, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
49 | ptrdiff_t loc_prev, ptrdiff_t loc_next); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
50 | ``` |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
51 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
52 | <warning> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
53 | TODO: document |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
54 | </warning> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
55 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
56 | ## Add Nodes |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
57 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
58 | ```C |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
59 | #include <cx/tree.h> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
60 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
61 | void cx_tree_link(void *parent, void *node, ptrdiff_t loc_parent, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
62 | ptrdiff_t loc_children, ptrdiff_t loc_last_child, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
63 | ptrdiff_t loc_prev, ptrdiff_t loc_next); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
64 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
65 | extern unsigned int cx_tree_add_look_around_depth; |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
66 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
67 | size_t cx_tree_add_iter(struct cx_iterator_base_s *iter, size_t n, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
68 | cx_tree_search_func sfunc, cx_tree_node_create_func cfunc, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
69 | void *cdata, void **failed, void *root, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
70 | ptrdiff_t loc_parent, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
71 | ptrdiff_t loc_children, ptrdiff_t loc_last_child, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
72 | ptrdiff_t loc_prev, ptrdiff_t loc_next); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
73 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
74 | size_t cx_tree_add_array(const void *src, size_t n, size_t elem_size, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
75 | cx_tree_search_func sfunc, cx_tree_node_create_func cfunc, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
76 | void *cdata, void **failed, void *root, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
77 | ptrdiff_t loc_parent, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
78 | ptrdiff_t loc_children, ptrdiff_t loc_last_child, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
79 | ptrdiff_t loc_prev, ptrdiff_t loc_next); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
80 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
81 | int cx_tree_add(const void *src, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
82 | cx_tree_search_func sfunc, cx_tree_node_create_func cfunc, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
83 | void *cdata, void **cnode, void *root, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
84 | ptrdiff_t loc_parent, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
85 | ptrdiff_t loc_children, ptrdiff_t loc_last_child, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
86 | ptrdiff_t loc_prev, ptrdiff_t loc_next); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
87 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
88 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
89 | int cxTreeAddChild(CxTree *tree, void *parent, const void *data); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
90 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
91 | void cxTreeAddChildNode(CxTree *tree, void *parent, void *child); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
92 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
93 | void cxTreeSetParent(CxTree *tree, void *parent, void *child); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
94 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
95 | int cxTreeInsert(CxTree *tree, const void *data); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
96 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
97 | size_t cxTreeInsertIter(CxTree *tree, CxIteratorBase *iter, size_t n); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
98 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
99 | size_t cxTreeInsertArray(CxTree *tree, const void *data, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
100 | size_t elem_size, size_t n); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
101 | ``` |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
102 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
103 | <warning> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
104 | TODO: document |
1190
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
105 | </warning> |
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
106 | |
1252
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
107 | ## Size and Depth |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
108 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
109 | ```C |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
110 | #include <cx/tree.h> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
111 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
112 | size_t cxTreeSubtreeSize(CxTree *tree, void *subtree_root); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
113 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
114 | size_t cxTreeSubtreeDepth(CxTree *tree, void *subtree_root); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
115 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
116 | size_t cxTreeDepth(CxTree *tree); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
117 | ``` |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
118 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
119 | <warning> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
120 | TODO: document |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
121 | </warning> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
122 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
123 | ## Search |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
124 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
125 | ```C |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
126 | #include <cx/tree.h> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
127 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
128 | #define CX_TREE_SEARCH_INFINITE_DEPTH |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
129 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
130 | int cx_tree_search_data(const void *root, size_t depth, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
131 | const void *data, cx_tree_search_data_func sfunc, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
132 | void **result, ptrdiff_t loc_children, ptrdiff_t loc_next); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
133 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
134 | int cx_tree_search(const void *root, size_t depth, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
135 | const void *node, cx_tree_search_func sfunc, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
136 | void **result, ptrdiff_t loc_children, ptrdiff_t loc_next); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
137 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
138 | void *cxTreeFind(CxTree *tree, const void *data); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
139 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
140 | void *cxTreeFindInSubtree(CxTree *tree, const void *data, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
141 | void *subtree_root, size_t max_depth); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
142 | ``` |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
143 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
144 | <warning> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
145 | TODO: document |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
146 | </warning> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
147 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
148 | ## Iterator and Visitor |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
149 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
150 | ```C |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
151 | #include <cx/tree.h> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
152 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
153 | CxTreeIterator cx_tree_iterator(void *root, bool visit_on_exit, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
154 | ptrdiff_t loc_children, ptrdiff_t loc_next); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
155 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
156 | CxTreeIterator cxTreeIterate(CxTree *tree, bool visit_on_exit); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
157 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
158 | CxTreeIterator cxTreeIterateSubtree(CxTree *tree, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
159 | void *node, bool visit_on_exit); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
160 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
161 | #define cxTreeIteratorContinue(iter) |
1142
9437530176bc
add symbols that need documentation as TODOs
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
162 | |
1252
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
163 | void cxTreeIteratorDispose(CxTreeIterator *iter); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
164 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
165 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
166 | CxTreeVisitor cx_tree_visitor(void *root, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
167 | ptrdiff_t loc_children, ptrdiff_t loc_next); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
168 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
169 | CxTreeVisitor cxTreeVisit(CxTree *tree); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
170 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
171 | CxTreeVisitor cxTreeVisitSubtree(CxTree *tree, void *node) |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
172 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
173 | #define cxTreeVisitorContinue(visitor) |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
174 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
175 | void cxTreeVisitorDispose(CxTreeVisitor *visitor); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
176 | ``` |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
177 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
178 | <warning> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
179 | TODO: document |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
180 | </warning> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
181 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
182 | ## Remove |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
183 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
184 | ```C |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
185 | #include <cx/tree.h> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
186 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
187 | void cx_tree_unlink(void *node, ptrdiff_t loc_parent, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
188 | ptrdiff_t loc_children, ptrdiff_t loc_last_child, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
189 | ptrdiff_t loc_prev, ptrdiff_t loc_next); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
190 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
191 | int cxTreeRemoveNode(CxTree *tree, void *node, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
192 | cx_tree_relink_func relink_func); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
193 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
194 | void cxTreeRemoveSubtree(CxTree *tree, void *node); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
195 | ``` |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
196 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
197 | <warning> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
198 | TODO: document |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
199 | </warning> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
200 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
201 | ## Dispose |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
202 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
203 | ```C |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
204 | #include <cx/tree.h> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
205 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
206 | int cxTreeDestroyNode(CxTree *tree, void *node, |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
207 | cx_tree_relink_func relink_func); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
208 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
209 | void cxTreeDestroySubtree(CxTree *tree, void *node); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
210 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
211 | void cxTreeClear(CxTree *tree); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
212 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
213 | void cxTreeFree(CxTree *tree); |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
214 | ``` |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
215 | |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
216 | <warning> |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
217 | TODO: document |
14c227b28a96
basic structure for tree.h documentation
Mike Becker <universe@uap-core.de>
parents:
1190
diff
changeset
|
218 | </warning> |
1190
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
219 | |
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
220 | <seealso> |
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
221 | <category ref="apidoc"> |
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
222 | <a href="https://ucx.sourceforge.io/api/tree_8h.html">tree.h</a> |
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
223 | </category> |
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
224 | </seealso> |
a7b913d5d589
bring incomplete docs into a shape that can be released
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
225 |