From: Lukáš Jiřiště Date: Thu, 31 Jul 2025 10:21:22 +0000 (+0200) Subject: Rename ft_tree_erase_child to ft_tree_erase_subtree X-Git-Url: https://git.ljiriste.work/?a=commitdiff_plain;h=4cfca05bbf9e75ae8af4c98b0fb646bbb621af61;p=Libft.git Rename ft_tree_erase_child to ft_tree_erase_subtree --- diff --git a/Makefile b/Makefile index 9e93dde..95d82d8 100644 --- a/Makefile +++ b/Makefile @@ -23,9 +23,9 @@ SRCstruct:= ft_stack_free.c \ ft_stack_top.c \ ft_tree_init.c \ ft_tree_append_child.c \ - *ft_tree_access_child.c \ - *ft_tree_access_data.c \ - ft_tree_erase_child.c \ + ft_tree_access_child.c \ + ft_tree_access_data.c \ + ft_tree_erase_subtree.c \ ft_tree_replace_with_child.c \ ft_tree_forget_child.c \ ft_tree_free.c \ diff --git a/ft_struct/ft_tree_erase_child.c b/ft_struct/ft_tree_erase_child.c deleted file mode 100644 index 1151451..0000000 --- a/ft_struct/ft_tree_erase_child.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "ft_struct.h" - -t_ft_stat ft_tree_erase_child(t_tree_node *tree_node, size_t i, void (*free_el)(void *)) -{ - t_tree_node *child_to_erase; - - if (!tree_node || i >= tree_node->children.size) - return (invalid_input); - child_to_erase = ft_tree_access_child(tree_node, i); - while (child_to_erase->children.size > 0) - ft_tree_erase_child(child_to_erase, 0, free_el); - if (free_el) - free_el(&child_to_erase->data); - ft_vec_free(&child_to_erase->children, NULL); - return (ft_tree_forget_child(tree_node, i)); -} diff --git a/ft_struct/ft_tree_erase_subtree.c b/ft_struct/ft_tree_erase_subtree.c new file mode 100644 index 0000000..5fe07f3 --- /dev/null +++ b/ft_struct/ft_tree_erase_subtree.c @@ -0,0 +1,16 @@ +#include "ft_struct.h" + +t_ft_stat ft_tree_erase_subtree(t_tree_node *tree_node, size_t i, void (*free_el)(void *)) +{ + t_tree_node *subtree; + + if (!tree_node || i >= tree_node->children.size) + return (invalid_input); + subtree = ft_tree_access_child(tree_node, i); + while (subtree->children.size > 0) + ft_tree_erase_subtree(subtree, 0, free_el); + if (free_el) + free_el(&subtree->data); + ft_vec_free(&subtree->children, NULL); + return (ft_tree_forget_child(tree_node, i)); +} diff --git a/ft_struct/ft_tree_free.c b/ft_struct/ft_tree_free.c index 74e0b5b..2de8e2b 100644 --- a/ft_struct/ft_tree_free.c +++ b/ft_struct/ft_tree_free.c @@ -6,7 +6,7 @@ void ft_tree_free(t_tree *tree, void (*free_el)(void *)) if (!tree) return ; while (tree->children.size > 0) - ft_tree_erase_child(tree, 0, free_el); + ft_tree_erase_subtree(tree, 0, free_el); if (free_el) free_el(&tree->data); ft_vec_free(&tree->children, NULL); diff --git a/inc/ft_struct.h b/inc/ft_struct.h index 151bce4..21c8f38 100644 --- a/inc/ft_struct.h +++ b/inc/ft_struct.h @@ -6,7 +6,7 @@ /* By: ljiriste +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/06/20 16:59:43 by ljiriste #+# #+# */ -/* Updated: 2025/07/31 11:58:41 by ljiriste ### ########.fr */ +/* Updated: 2025/07/31 12:15:01 by ljiriste ### ########.fr */ /* */ /* ************************************************************************** */ @@ -53,7 +53,7 @@ t_ft_stat ft_tree_init(t_tree *tree, size_t el_size); t_ft_stat ft_tree_append_child(t_tree_node *tree_node, void *element); t_tree_node *ft_tree_access_child(t_tree_node *tree_node, size_t i); void *ft_tree_access_data(t_tree_node *tree_node); -t_ft_stat ft_tree_erase_child(t_tree_node *tree_node, size_t i, void (*free_el)(void *)); +t_ft_stat ft_tree_erase_subtree(t_tree_node *tree_node, size_t i, void (*free_el)(void *)); t_ft_stat ft_tree_replace_with_child(t_tree_node *tree_node, size_t i, void (*free_el)(void *)); t_ft_stat ft_tree_forget_child(t_tree_node *tree_node, size_t i); void ft_tree_free(t_tree *tree, void (*free_el)(void *));