From 96a0a6d8f03439105f3efda3d8e811f756ae80ee Mon Sep 17 00:00:00 2001 From: Maoake Date: Mon, 22 Dec 2025 20:37:12 +0000 Subject: [PATCH] setting up my preset but i need to valgrind --- Makefile | 2 +- algorithms/medium_algo.c | 6 +- algorithms/medium_utils/utils_medium.c | 11 +++- algorithms/medium_utils/utils_struct_tab.c | 2 + main.c | 26 +++----- parsing_2.c | 67 +++++++++++++++++++++ push_swap | Bin 0 -> 22000 bytes push_swap.h | 12 ++++ test_one.c | 66 ++++++++++++++++++++ 9 files changed, 168 insertions(+), 24 deletions(-) create mode 100644 parsing_2.c create mode 100755 push_swap create mode 100644 test_one.c diff --git a/Makefile b/Makefile index 24f94e2..6adb9ad 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ ALGO_DIR = algorithms MEDIUM_DIR = medium_utils -SRC = main.c ft_atoi.c parsing.c +SRC = main.c ft_atoi.c parsing.c parsing_2.c test_one.c STACK_UTILS = push.c rev_rotate.c rotate.c stack_add.c stack_remove.c swap.c diff --git a/algorithms/medium_algo.c b/algorithms/medium_algo.c index b8bd74d..99807a8 100644 --- a/algorithms/medium_algo.c +++ b/algorithms/medium_algo.c @@ -12,12 +12,12 @@ #include "push_swap.h" -void bucket_algo(t_stacks *piles) +void bucket_algo(void) { - int range; + /*int range; t_tab *preset; range = range_bucket(piles->a); - preset = get_tabs(piles->a, range); + preset = get_tabs(piles->a, range);*/ return ; } diff --git a/algorithms/medium_utils/utils_medium.c b/algorithms/medium_utils/utils_medium.c index 098af07..1f715b7 100644 --- a/algorithms/medium_utils/utils_medium.c +++ b/algorithms/medium_utils/utils_medium.c @@ -21,7 +21,7 @@ int get_first_lower(t_stack *first) lower = tmp->value; while (tmp->next != first) { - if (lower < tmp->value) + if (lower > tmp->value) lower = tmp->value; tmp = tmp->next; } @@ -34,11 +34,14 @@ int get_next_lower(t_stack *first, int old_lower) int next_lower; tmp = first; - next_lower = tmp->value; + next_lower = 2147483646; + while (tmp->next != first) { - if (tmp->value != old_lower && next_lower < tmp->value) + if (old_lower < tmp->value && tmp->value <= next_lower) + { next_lower = tmp->value; + } tmp = tmp->next; } return (next_lower); @@ -85,5 +88,7 @@ int get_number_in_range(int max_range, t_stack *a, int range) nb_in++; tmp = tmp->next; } + if (in_range(tmp->value, max_range, range)) + nb_in++; return (nb_in); } diff --git a/algorithms/medium_utils/utils_struct_tab.c b/algorithms/medium_utils/utils_struct_tab.c index e67a6cc..8096765 100644 --- a/algorithms/medium_utils/utils_struct_tab.c +++ b/algorithms/medium_utils/utils_struct_tab.c @@ -25,6 +25,8 @@ t_tab *allocate_tab(int range_max, int nb) return (tab); } +#include + t_tab *get_tabs(t_stack *first, int range) { t_tab *tmp; diff --git a/main.c b/main.c index a364247..b5721c3 100644 --- a/main.c +++ b/main.c @@ -13,6 +13,7 @@ #include "push_swap.h" #include #include +#include void print_all_stack(t_stack *stack, t_stack *first, char pile) { @@ -47,14 +48,14 @@ int verif_no_double(int *tab, int len, int value) return (1); } -int adding_number(int *tab, int len) +int adding_number(int *tab, int len) { int stock; stock = tab[0]; while (!verif_no_double(tab, len, stock)) { - stock = rand(); + stock = 0 + rand() % (250 - 0 + 1); } return stock; } @@ -63,13 +64,12 @@ int *auto_shuffle(int len_tab) { int *tab; int i; - int len_added; i = 1; tab = malloc(len_tab * sizeof(int)); if (!tab) return (NULL); - tab[0] = rand(); + tab[0] = 0 + rand() % (250 - 0 + 1); while (i < len_tab) { tab[i] = adding_number(tab, i); @@ -81,20 +81,12 @@ int *auto_shuffle(int len_tab) int main(int argc, char **argv) { - t_stacks *stacks; - - stacks = NULL; if (argc > 1) { - stacks = init_big_stacks(argc, argv); - print_all_stack(stacks->a, stacks->a, 'A'); - print_all_stack(stacks->b, stacks->b, 'B'); - rra(stacks); - print_all_stack(stacks->a, stacks->a, 'A'); - print_all_stack(stacks->b, stacks->b, 'B'); + if (strcmp(argv[1], "-t1") == 0) + test1(argc, argv++); + else if (strcmp(argv[1], "-t2") == 0) + test2(argv++); } - if (stacks->a) - stack_clear_all(stacks->a, stacks->a); - if (stacks->b) - stack_clear_all(stacks->b, stacks->b); + return (0); } diff --git a/parsing_2.c b/parsing_2.c new file mode 100644 index 0000000..8ca0abe --- /dev/null +++ b/parsing_2.c @@ -0,0 +1,67 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* parsing_2.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mteriier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/12/22 13:10:58 by mteriier #+# #+# */ +/* Updated: 2025/12/22 13:11:21 by mteriier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "push_swap.h" +#include +#include + +void print_tabs(t_tab *preset) +{ + t_tab *tab; + + tab = preset; + while (tab) + { + printf("MAX RANGE : [%d]\n", tab->max_range); + printf("NUMBER IN : [%d]\n", tab->nb_in); + tab = tab->next; + } +} + +t_stack *parsing2(int *tab, int len) +{ + int i; + int stock; + t_stack *first; + t_stack *new; + + i = 0; + first = NULL; + while (i < len) + { + stock = tab[i]; + new = new_stack(stock); + if (!new && !first) + return (NULL); + else if (!new) + { + stack_clear_all(first, first); + return (NULL); + } + stack_add_back(&first, new); + i++; + } + return (first); +} + +t_stacks *init_big_stacks2(int *tab, int len) +{ + t_stacks *stacks; + t_stack *a; + + stacks = malloc(sizeof(t_stacks)); + if (!stacks) + return (NULL); + a = parsing2(tab, len); + stacks->a = a; + return (stacks); +} diff --git a/push_swap b/push_swap new file mode 100755 index 0000000000000000000000000000000000000000..4d299d9c7cb188b110187eb82374d404568d4684 GIT binary patch literal 22000 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 +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/12/22 12:33:58 by mteriier #+# #+# */ +/* Updated: 2025/12/22 12:34:35 by mteriier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "push_swap.h" +#include +#include + +int test1(int argc, char **argv) +{ + t_stacks *stacks; + + stacks = NULL; + if (argc > 1) + { + stacks = init_big_stacks(argc, argv); + print_all_stack(stacks->a, stacks->a, 'A'); + print_all_stack(stacks->b, stacks->b, 'B'); + rra(stacks); + print_all_stack(stacks->a, stacks->a, 'A'); + print_all_stack(stacks->b, stacks->b, 'B'); + } + if (stacks->a) + stack_clear_all(stacks->a, stacks->a); + if (stacks->b) + stack_clear_all(stacks->b, stacks->b); + return (0); +} + +int test2(char **argv){ + + int *tab; + int len; + t_tab *preset; + t_stacks *piles; + int i; + + i = 0; + len = ft_atoi(argv[2]); + if (len < 1) + { + printf("WRONG LEN PLS BE SMART.\n"); + return (0); + } + tab = auto_shuffle(len); + while (i < len) + { + printf("tab(%d) [%d]\n", i, tab[i]); + i++; + } + piles = init_big_stacks2(tab, len); + printf("RANGE BUCKET %d\n", range_bucket(piles->a)); + preset = get_tabs(piles->a, range_bucket(piles->a)); + print_tabs(preset); + free(tab); + free_tab(preset); + return (0); +} \ No newline at end of file