/ push_swap / push_swap / op_push.c
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  }