docs/Writerside/topics/tree.h.md

Tue, 18 Mar 2025 19:03:18 +0100

author
Mike Becker <universe@uap-core.de>
date
Tue, 18 Mar 2025 19:03:18 +0100
changeset 1252
14c227b28a96
parent 1190
a7b913d5d589
permissions
-rw-r--r--

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

mercurial