diff options
| -rw-r--r-- | optimization.c | 84 | ||||
| -rw-r--r-- | stack_optimization.c | 80 |
2 files changed, 80 insertions, 84 deletions
diff --git a/optimization.c b/optimization.c deleted file mode 100644 index f1eca7e..0000000 --- a/optimization.c +++ /dev/null @@ -1,84 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* optimization.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2024/04/13 15:25:05 by dkaiser #+# #+# */ -/* Updated: 2024/04/13 16:27:05 by dkaiser ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft/ft_printf.h" -#include "libft/libft.h" -#include "push_swap.h" -#include <stdlib.h> - -static void sort_array(int size, int *tmp_array) -{ - int i; - int k; - int tmp; - - i = 0; - while (i < size - 1) - { - k = i + 1; - while (k < size) - { - if (tmp_array[i] > 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); -} 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 <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/04/13 15:25:05 by dkaiser #+# #+# */ +/* Updated: 2024/04/13 16:33:23 by dkaiser ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "push_swap.h" + +static void sort_array(int size, int *tmp_array) +{ + int i; + int k; + int tmp; + + i = 0; + while (i < size - 1) + { + k = i + 1; + while (k < size) + { + if (tmp_array[i] > 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); +} |
