diff options
| author | Thomas Schmucker <ts@its1.de> | 2020-12-21 16:43:37 +0100 |
|---|---|---|
| committer | Thomas Schmucker <ts@its1.de> | 2020-12-21 16:43:37 +0100 |
| commit | 66515dbba09978d62b7c4ab8424dfe548d811a0f (patch) | |
| tree | 270542594fcd9b12b9f933535311bf52bb4eac51 | |
| parent | 728b55d00f035c729059bf2e3f381a718ac3e149 (diff) | |
| download | data-structures-66515dbba09978d62b7c4ab8424dfe548d811a0f.tar.gz data-structures-66515dbba09978d62b7c4ab8424dfe548d811a0f.tar.bz2 data-structures-66515dbba09978d62b7c4ab8424dfe548d811a0f.zip | |
neue Funktion: tree_copy()
| -rw-r--r-- | tree.c | 24 |
1 files changed, 24 insertions, 0 deletions
| @@ -245,6 +245,30 @@ tree_count(struct tree_node *tree) | |||
| 245 | } | 245 | } |
| 246 | /* -->8-- */ | 246 | /* -->8-- */ |
| 247 | 247 | ||
| 248 | /* --8<-- tree_copy */ | ||
| 249 | struct tree_node * | ||
| 250 | tree_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 */ |
| 249 | bool | 273 | bool |
| 250 | tree_isleaf(struct tree_node *tree) | 274 | tree_isleaf(struct tree_node *tree) |
