summaryrefslogtreecommitdiff
path: root/stack_utils.c
diff options
context:
space:
mode:
authorDominik Kaiser2024-04-12 20:51:04 +0200
committerDominik Kaiser2024-04-12 20:51:04 +0200
commit925c50a9b094f6d244b621c8750d5ecf0caa38a1 (patch)
tree405616d0682be11b48bacb9a773b47da86f755ef /stack_utils.c
parent9c64c9d253fa22b29005ec53dca6fedcead2ae6c (diff)
downloadpush_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.c54
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;
+}