From 2c9fdc3f48a0f44f38ae6f9fcf7b66d1b5f74b8f Mon Sep 17 00:00:00 2001 From: whaffman Date: Sun, 10 Nov 2024 16:34:47 +0100 Subject: [PATCH] made some utilities --- src/util/utils.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/util/utils.c diff --git a/src/util/utils.c b/src/util/utils.c new file mode 100644 index 0000000..1452980 --- /dev/null +++ b/src/util/utils.c @@ -0,0 +1,64 @@ +/* ************************************************************************** */ +/* */ +/* ::: o_ :::::: ::: */ +/* utils.c :+: / :+::+: :+: */ +/* +:+ > +:++:+ +:+ */ +/* By: whaffman +#+ +:+ +#++#++:++#++ */ +/* +#+ +#+#+ +#++#+ +#+ \o/ */ +/* Created: 2024/11/10 14:44:51 by whaffman #+#+# #+#+# #+# #+# | */ +/* Updated: 2024/11/10 16:34:08 by whaffman ### ### ### ### / \ */ +/* */ +/* ************************************************************************** */ + +#include "push_swap.h" + +int shortest_rotate(int index, int size) +{ + if (index <= size / 2) + return (index); + return (-1 * (size - index)); +} + +void rotate_to(int index, t_state state, char c) +{ + //TODO + if (c == 'a') + { + + } +} + +int index_of(int number, t_list *stack) +{ + int i; + + i = 0; + while (stack) + { + if (*(int *) stack->content == number) + return (i); + stack = stack->next; + } + return (-1); +} + +int put_at_index(int number, t_list *stack) +{ + int i; + + i = 0; + if (number < stack_min(stack) || number > stack_max(stack)) + i = index_of(stack_min(stack), stack); + else + { + while (number > *(int *) ft_lstat(stack, i)->content + && number > *(int *) ft_lstat(stack, i)->content + && i < ft_lstsize(stack)) + { + i++; + } + } + if (i == ft_lstsize(stack)) + return (0); + return (i); +}