diff options
| author | Dominik Kaiser | 2024-04-12 20:51:04 +0200 |
|---|---|---|
| committer | Dominik Kaiser | 2024-04-12 20:51:04 +0200 |
| commit | 925c50a9b094f6d244b621c8750d5ecf0caa38a1 (patch) | |
| tree | 405616d0682be11b48bacb9a773b47da86f755ef /stack_utils.c | |
| parent | 9c64c9d253fa22b29005ec53dca6fedcead2ae6c (diff) | |
| download | push_swap-925c50a9b094f6d244b621c8750d5ecf0caa38a1.tar.gz push_swap-925c50a9b094f6d244b621c8750d5ecf0caa38a1.zip | |
Add error handling and create base for commands
Diffstat (limited to 'stack_utils.c')
| -rw-r--r-- | stack_utils.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/stack_utils.c b/stack_utils.c new file mode 100644 index 0000000..7a22b47 --- /dev/null +++ b/stack_utils.c @@ -0,0 +1,54 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* stack_utils.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/04/12 20:31:30 by dkaiser #+# #+# */ +/* Updated: 2024/04/12 20:50:17 by dkaiser ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft/libft.h" +#include "push_swap.h" + +void stack_swap(t_list **stack) +{ + t_list *first_elem; + + first_elem = *stack; + *stack = (*stack)->next; + first_elem->next = (*stack)->next; + (*stack)->next = first_elem; +} + +void stack_push(t_list **dst_stack, t_list **src_stack) +{ + t_list *elem; + + elem = *src_stack; + *src_stack = elem->next; + ft_lstadd_front(dst_stack, elem); +} + +void stack_rotate(t_list **stack) +{ + t_list *first_elem; + + first_elem = *stack; + *stack = (*stack)->next; + first_elem->next = NULL; + ft_lstlast(*stack)->next = first_elem; +} + +void stack_rrotate(t_list **stack) +{ + t_list *first_elem; + + first_elem = *stack; + while((*stack)->next->next) + *stack = (*stack)->next; + (*stack)->next->next = first_elem; + (*stack)->next = NULL; +} |
