Archived
1
0

working algo 😂

This commit is contained in:
2024-02-22 11:05:04 +01:00
parent 7930a36c0c
commit cf4ec95b12
27 changed files with 242 additions and 36 deletions

View File

@ -6,17 +6,20 @@
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/02/08 18:08:51 by adjoly #+# #+# */
/* Updated: 2024/02/12 17:24:55 by adjoly ### ########.fr */
/* Updated: 2024/02/21 17:55:12 by adjoly ### ########.fr */
/* */
/* ************************************************************************** */
#include "../push_swap.h"
#include <unistd.h>
void ft_push_a(t_stack **stack_a, t_stack **stack_b)
{
t_stack *tmp_a;
ft_putendl_fd("pb", 1);
if (!stack_b || !(*stack_b))
return ;
ft_putendl_fd("pa", STDOUT_FILENO);
tmp_a = *stack_b;
*stack_b = (*stack_b)->next;
tmp_a->next = *stack_a;
@ -27,7 +30,9 @@ void ft_push_b(t_stack **stack_a, t_stack **stack_b)
{
t_stack *tmp_b;
ft_putendl_fd("pb", 1);
if (!stack_a || !(*stack_a))
return ;
ft_putendl_fd("pb", STDOUT_FILENO);
tmp_b = *stack_a;
*stack_a = (*stack_a)->next;
tmp_b->next = *stack_b;

Binary file not shown.

View File

@ -6,7 +6,7 @@
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/02/13 13:41:25 by adjoly #+# #+# */
/* Updated: 2024/02/13 14:05:13 by adjoly ### ########.fr */
/* Updated: 2024/02/15 13:30:20 by adjoly ### ########.fr */
/* */
/* ************************************************************************** */
@ -30,13 +30,28 @@ void ft_reverserotate(t_stack **stack)
void ft_reverserotate_a(t_stack **stack_a)
{
if (!stack_a || !(*stack_a) || !(*stack_a)->next)
return ;
ft_putendl_fd("rra", STDOUT_FILENO);
ft_reverserotate(stack_a);
}
void ft_reverserotate_b(t_stack **stack_b)
{
if (!stack_b || !(*stack_b) || !(*stack_b)->next)
return ;
ft_putendl_fd("rrb", STDOUT_FILENO);
ft_reverserotate(stack_b);
}
void ft_reverserotate_r(t_stack **stack_a, t_stack **stack_b)
{
if (!stack_a || !(*stack_a) || !(*stack_a)->next)
return ;
if (!stack_b || !(*stack_b) || !(*stack_b)->next)
return ;
ft_putendl_fd("rrr", STDOUT_FILENO);
ft_reverserotate(stack_a);
ft_reverserotate(stack_b);
}

Binary file not shown.

View File

@ -6,7 +6,7 @@
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/02/13 12:53:55 by adjoly #+# #+# */
/* Updated: 2024/02/13 13:36:51 by adjoly ### ########.fr */
/* Updated: 2024/02/15 13:32:27 by adjoly ### ########.fr */
/* */
/* ************************************************************************** */
@ -16,7 +16,9 @@ void ft_rotatestack(t_stack **stack)
{
t_stack *tmp_last;
t_stack *start;
if (!stack || !(*stack))
return ;
start = (*stack)->next;
tmp_last = ft_stacklast(*stack);
tmp_last->next = *stack;
@ -26,13 +28,28 @@ void ft_rotatestack(t_stack **stack)
void ft_rotatestack_a(t_stack **stack_a)
{
if (!stack_a || !(*stack_a))
return ;
ft_putendl_fd("ra", STDOUT_FILENO);
ft_rotatestack(stack_a);
}
void ft_rotatestack_b(t_stack **stack_b)
{
if (!stack_b || !(*stack_b))
return ;
ft_putendl_fd("rb", STDOUT_FILENO);
ft_rotatestack(stack_b);
}
void ft_rotatestack_r(t_stack **stack_a, t_stack **stack_b)
{
if (!stack_a || !(*stack_a))
return ;
if (!stack_b || !(*stack_b))
return ;
ft_putendl_fd("rr", STDOUT_FILENO);
ft_rotatestack(stack_a);
ft_rotatestack(stack_b);
}

Binary file not shown.

View File

@ -6,7 +6,7 @@
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/02/08 17:55:21 by adjoly #+# #+# */
/* Updated: 2024/02/08 18:10:02 by adjoly ### ########.fr */
/* Updated: 2024/02/15 13:36:44 by adjoly ### ########.fr */
/* */
/* ************************************************************************** */
@ -15,7 +15,9 @@
void ft_swapstack(t_stack *stack)
{
int tmp;
if (!stack)
return ;
tmp = stack->nb;
stack->nb = stack->next->nb;
stack->next->nb = tmp;
@ -23,19 +25,25 @@ void ft_swapstack(t_stack *stack)
void ft_swap_a(t_stack *stack_a)
{
ft_putendl_fd("sa", 1);
if (!stack_a)
return ;
ft_putendl_fd("sa", STDOUT_FILENO);
ft_swapstack(stack_a);
}
void ft_swap_b(t_stack *stack_b)
{
ft_putendl_fd("sb", 1);
if (!stack_b)
return ;
ft_putendl_fd("sb", STDOUT_FILENO);
ft_swapstack(stack_b);
}
void ft_stack_ss(t_stack *stack_a, t_stack *stack_b)
{
ft_putendl_fd("ss", 1);
if (!stack_a || !stack_b)
return ;
ft_putendl_fd("ss", STDOUT_FILENO);
ft_swapstack(stack_a);
ft_swapstack(stack_b);
}

Binary file not shown.