-
Notifications
You must be signed in to change notification settings - Fork 0
/
utils4.c
122 lines (111 loc) · 2.49 KB
/
utils4.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* utils4.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: eda-mata <[email protected]> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/07/05 11:21:36 by eda-mata #+# #+# */
/* Updated: 2024/07/05 11:21:56 by eda-mata ### ########.fr */
/* */
/* ************************************************************************** */
#include "push_swap.h"
void rra1(t_liste **a)
{
int num;
t_liste *aux;
t_liste *anterior;
aux = *a;
anterior = NULL;
if (aux && aux->next)
{
while (aux->next)
{
anterior = aux;
aux = aux->next;
}
num = aux->valor;
inserir_inicio(&*a, num);
anterior->next = NULL;
free(aux);
}
}
void rrb1(t_liste **b)
{
int num;
t_liste *aux;
t_liste *anterior;
aux = *b;
anterior = NULL;
if (aux && aux->next)
{
while (aux->next)
{
anterior = aux;
aux = aux->next;
}
num = aux->valor;
inserir_inicio(&*b, num);
anterior->next = NULL;
free(aux);
}
}
void vrrr(int menor_de_a, int maior_de_b, t_liste **a, t_liste **b)
{
t_liste *aux;
int va;
int vb;
va = 0;
vb = 0;
aux = *a;
if (!(*a) || !(*b))
return ;
while (aux->next)
aux = aux->next;
if (aux->valor == menor_de_a)
va = 1;
aux = *b;
while (aux->next)
aux = aux->next;
if (aux->valor == maior_de_b)
vb = 1;
if (vb == 1 && va == 1)
rrr(&*a, &*b);
}
void ft_remove_list(t_liste **a)
{
t_liste *aux;
aux = *a;
while (aux)
{
*a = aux->next;
free(aux);
aux = *a;
}
}
long int ft_atoi_long(const char *str)
{
int i;
int np;
long int num;
np = 1;
i = 0;
num = 0;
while ((str[i] == ' ' || str[i] == '\t') || str[i] == '\f'
|| str[i] == '\r' || str[i] == '\n' || str[i] == '\v')
i++;
if (str[i] == '+' || str[i] == '-')
if (str[i++] == '-')
np = -1;
if (str[i] == '+' || str[i] == '-' || !(str[i] >= '0' && str[i] <= '9'))
{
ft_putstr_fd("Error\n", 2);
exit(1);
}
while (str[i] >= '0' && str[i] <= '9')
{
num = num * 10 + (str[i] - '0');
i++;
}
return ((long int)(np * num));
}