op_push.c
1 /* ************************************************************************** */ 2 /* */ 3 /* ::: :::::::: */ 4 /* op_push.c :+: :+: :+: */ 5 /* +:+ +:+ +:+ */ 6 /* By: gychoi <gychoi@student.42seoul.kr> +#+ +:+ +#+ */ 7 /* +#+#+#+#+#+ +#+ */ 8 /* Created: 2022/11/14 01:44:22 by gychoi #+# #+# */ 9 /* Updated: 2022/12/07 19:54:17 by gychoi ### ########.fr */ 10 /* */ 11 /* ************************************************************************** */ 12 13 #include "push_swap.h" 14 15 void pa(t_deque *deque_a, t_deque *deque_b) 16 { 17 t_list *node; 18 19 if (deque_b->head == NULL) 20 return ; 21 node = deque_b->head; 22 if (node->next) 23 { 24 node->next->prev = NULL; 25 deque_b->head = node->next; 26 } 27 else 28 { 29 deque_b->head = NULL; 30 deque_b->tail = NULL; 31 } 32 node->next = deque_a->head; 33 if (deque_a->head) 34 deque_a->head->prev = node; 35 deque_a->head = node; 36 if (deque_a->tail == NULL) 37 deque_a->tail = node; 38 (deque_b->size)--; 39 (deque_a->size)++; 40 write(1, "pa\n", 3); 41 } 42 43 void pb(t_deque *deque_a, t_deque *deque_b) 44 { 45 t_list *node; 46 47 if (deque_a->head == NULL) 48 return ; 49 node = deque_a->head; 50 if (node->next) 51 { 52 node->next->prev = NULL; 53 deque_a->head = node->next; 54 } 55 else 56 { 57 deque_a->head = NULL; 58 deque_a->tail = NULL; 59 } 60 node->next = deque_b->head; 61 if (deque_b->head) 62 deque_b->head->prev = node; 63 deque_b->head = node; 64 if (deque_b->tail == NULL) 65 deque_b->tail = node; 66 (deque_a->size)--; 67 (deque_b->size)++; 68 write(1, "pb\n", 3); 69 }