aboutsummaryrefslogtreecommitdiff
path: root/tree.c
diff options
context:
space:
mode:
authorThomas Schmucker <ts@its1.de>2020-12-21 16:43:37 +0100
committerThomas Schmucker <ts@its1.de>2020-12-21 16:43:37 +0100
commit66515dbba09978d62b7c4ab8424dfe548d811a0f (patch)
tree270542594fcd9b12b9f933535311bf52bb4eac51 /tree.c
parent728b55d00f035c729059bf2e3f381a718ac3e149 (diff)
downloaddata-structures-66515dbba09978d62b7c4ab8424dfe548d811a0f.tar.gz
data-structures-66515dbba09978d62b7c4ab8424dfe548d811a0f.tar.bz2
data-structures-66515dbba09978d62b7c4ab8424dfe548d811a0f.zip
neue Funktion: tree_copy()
Diffstat (limited to 'tree.c')
-rw-r--r--tree.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/tree.c b/tree.c
index f6ccc5a..fb38c89 100644
--- a/tree.c
+++ b/tree.c
@@ -245,6 +245,30 @@ tree_count(struct tree_node *tree)
245} 245}
246/* -->8-- */ 246/* -->8-- */
247 247
248/* --8<-- tree_copy */
249struct tree_node *
250tree_copy(struct tree_node *tree)
251{
252 if ( tree ) {
253 struct tree_node *new_node;
254
255 new_node = malloc(sizeof *new_node);
256 if ( new_node != NULL ) {
257 new_node->key = tree->key;
258 new_node->count = tree->count;
259 new_node->left = tree_copy(tree->left);
260 new_node->right = tree_copy(tree->right);
261 }
262 else {
263 ERROR("out of memory");
264 }
265
266 return new_node;
267 }
268 return NULL;
269}
270/* -->8-- */
271
248/* --8<-- tree_isleaf */ 272/* --8<-- tree_isleaf */
249bool 273bool
250tree_isleaf(struct tree_node *tree) 274tree_isleaf(struct tree_node *tree)