From 66515dbba09978d62b7c4ab8424dfe548d811a0f Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Mon, 21 Dec 2020 16:43:37 +0100 Subject: neue Funktion: tree_copy() --- tree.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'tree.c') 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) } /* -->8-- */ +/* --8<-- tree_copy */ +struct tree_node * +tree_copy(struct tree_node *tree) +{ + if ( tree ) { + struct tree_node *new_node; + + new_node = malloc(sizeof *new_node); + if ( new_node != NULL ) { + new_node->key = tree->key; + new_node->count = tree->count; + new_node->left = tree_copy(tree->left); + new_node->right = tree_copy(tree->right); + } + else { + ERROR("out of memory"); + } + + return new_node; + } + return NULL; +} +/* -->8-- */ + /* --8<-- tree_isleaf */ bool tree_isleaf(struct tree_node *tree) -- cgit v1.3