From f5fe6ded974fea397c7a208456d669f3b5c0672e Mon Sep 17 00:00:00 2001 From: Dominik Kaiser Date: Sat, 13 Apr 2024 16:34:23 +0200 Subject: Rename optimization.c to stack_optimization.c Also some cleanup and trying to make norminette happy --- stack_optimization.c | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 stack_optimization.c (limited to 'stack_optimization.c') diff --git a/stack_optimization.c b/stack_optimization.c new file mode 100644 index 0000000..f41b44a --- /dev/null +++ b/stack_optimization.c @@ -0,0 +1,80 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* optimization.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser tmp_array[k]) + { + tmp = tmp_array[i]; + tmp_array[i] = tmp_array[k]; + tmp_array[k] = tmp; + } + k++; + } + i++; + } +} + +static void override_stack(t_list **stack, int *tmp_array) +{ + t_list *cur; + int content; + int i; + + cur = *stack; + while (cur) + { + i = 0; + content = *(int *)cur->content; + while (content != tmp_array[i]) + i++; + *(int *)cur->content = i; + cur = cur->next; + } +} + +void stack_optimize(t_list **stack) +{ + int size; + int *tmp_array; + t_list *cur; + int i; + + size = ft_lstsize(*stack); + cur = *stack; + tmp_array = malloc(size * sizeof(int)); + if (!tmp_array) + ; // TODO: Error handling + i = 0; + while (cur) + { + tmp_array[i++] = *(int *)cur->content; + cur = cur->next; + } + if (i != size) + ; // TODO: Error handling + sort_array(size, tmp_array); + i = 0; + override_stack(stack, tmp_array); +} -- cgit v1.2.3