Files
42_INT_06_pushwap/srcs/reverse_rotate.c
2021-06-15 17:15:21 +02:00

43 lines
670 B
C

#include "push_swap.h"
void reverse_rotate(t_stack **stack)
{
t_stack *tmp;
t_stack *before;
tmp = *stack;
if (!tmp || !(tmp->next))
return ;
while (tmp->next)
{
before = tmp;
tmp = tmp->next;
}
tmp->next = *stack;
*stack = tmp;
before->next = NULL;
}
t_list *rra(t_stack **a, t_list **lst)
{
reverse_rotate(a);
fill_solution(*lst, ft_strdup("rra"));
return (NULL);
}
t_list *rrb(t_stack **b, t_list **lst)
{
reverse_rotate(b);
fill_solution(*lst, ft_strdup("rrb"));
return (NULL);
}
t_list *rrr(t_stack **a, t_stack **b, t_list **lst)
{
reverse_rotate(a);
reverse_rotate(b);
fill_solution(*lst, ft_strdup("rrr"));
return (NULL);
}