diff --git a/push_swap.h b/push_swap.h index 2c4d8cd..c93124d 100644 --- a/push_swap.h +++ b/push_swap.h @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/12/08 14:18:06 by dgaillet #+# #+# */ -/* Updated: 2025/12/08 14:39:22 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/12/08 15:34:51 by mteriier ### ########lyon.fr */ /* */ /* ************************************************************************** */ @@ -26,4 +26,17 @@ typedef struct s_stacks t_stack *b; } t_stacks; +/*STACK_FUNCTIONS*/ +void pa(t_stacks *stacks); +void pb(t_stacks *stacks); +void rra(t_stacks *stacks); +void rrb(t_stacks *stacks); +void rrr(t_stacks *stacks); +void ra(t_stacks *stacks); +void rb(t_stacks *stacks); +void rr(t_stacks *stacks); +void sa(t_stacks *stacks); +void sb(t_stacks *stacks); +void ss(t_stacks *stacks); + #endif diff --git a/stack_functions/push.c b/stack_functions/push.c new file mode 100644 index 0000000..ec8944e --- /dev/null +++ b/stack_functions/push.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* push.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mteriier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/12/08 15:09:40 by mteriier #+# #+# */ +/* Updated: 2025/12/08 15:35:23 by mteriier ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include "push_swap.h" + +void pa(t_stacks *stacks) +{ + t_stack a; + + if (!stacks || !stacks->b) + return ; + a = stack->a; + a->value = stacks->b->value; +} + +void pb(t_stacks *stacks) +{ + t_stack b; + + if (!stacks || !stacks->a) + return ; + b = stacks->b; + b->value = stacks->a->value; +} diff --git a/stack_functions/rev_rotate.c b/stack_functions/rev_rotate.c new file mode 100644 index 0000000..fe9e664 --- /dev/null +++ b/stack_functions/rev_rotate.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* rev_rotate.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dgaillet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/12/08 14:43:45 by dgaillet #+# #+# */ +/* Updated: 2025/12/08 14:52:53 by dgaillet ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include "push_swap.h" + +void rra(t_stacks *stacks) +{ + if (stacks && stacks->a && stacks->a->previous) + stacks->a = stacks->a->previous; +} + +void rrb(t_stacks *stacks) +{ + if (stacks && stacks->b && stacks->b->previous) + stacks->b = stacks->b->previous; +} + +void rrr(t_stacks *stacks) +{ + rra(stacks); + rrb(stacks); +} diff --git a/stack_functions/rotate.c b/stack_functions/rotate.c index ea412af..d330a9d 100644 --- a/stack_functions/rotate.c +++ b/stack_functions/rotate.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/12/08 14:32:10 by dgaillet #+# #+# */ -/* Updated: 2025/12/08 14:42:04 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/12/08 14:52:37 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ @@ -14,17 +14,13 @@ void ra(t_stacks *stacks) { - if (!stacks) - return ; - if (stacks->a->next) + if (stacks && stacks->a && stacks->a->next) stacks->a = stacks->a->next; } void rb(t_stacks *stacks) { - if (!stacks) - return ; - if (stacks->b->next) + if (stacks && stacks->b && stacks->b->next) stacks->b = stacks->b->next; } diff --git a/stack_functions/swap.c b/stack_functions/swap.c new file mode 100644 index 0000000..67430fb --- /dev/null +++ b/stack_functions/swap.c @@ -0,0 +1,45 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* swap.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mteriier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/12/08 14:48:44 by mteriier #+# #+# */ +/* Updated: 2025/12/08 15:04:39 by mteriier ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include "push_swap.h" + +void sa(t_stacks *stacks) +{ + t_stack a; + int stock; + + if (!stacks || !stacks->a || !stacks->a->next) + return ; + a = stacks->a; + stock = a->value; + a->value = a->next->value; + a->next->value = stock; +} + +void sb(t_stacks *stacks) +{ + t_stack b; + int stock; + + if (!stacks || !stacks->b || !stacks->b->next) + return ; + b = stacks->b; + stock = b->value; + b->value = b->next->value; + b->next->value = stock; +} + +void ss(t_stacks *stacks) +{ + sa(stacks); + sb(stacks); +}