summaryrefslogtreecommitdiff
path: root/include/push_swap.h
blob: fd30ae25cc7e7bb6ee7047633fe3e8ea62c605ae (plain)
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
#ifndef PUSH_SWAP_H

# define PUSH_SWAP_H

# include "../lib/libft.h"
# include <stdio.h>
# include <stdlib.h>
# include <unistd.h> // for write

/* rules */
void				push(t_list **src, t_list **dst);
void				swap(t_list **stack);
void				rotate(t_list **stack);
void				rrotate(t_list **stack);
void				pb(t_list **stack_a, t_list **stack_b);
void				pa(t_list **stack_b, t_list **stack_a);
void				rrb(t_list **stack);
void				rra(t_list **stack);
void				rrr(t_list **stack_a, t_list **stack_b);
void				sb(t_list **stack);
void				sa(t_list **stack);
void				ss(t_list **stack_a, t_list **stack_b);
void				ra(t_list **stack);
void				rb(t_list **stack);
void				rr(t_list **stack_a, t_list **stack_b);
void				rotate_stacks(int position_a, int position_b, t_list **src,
						t_list **dst);

/*sort*/
void				sort_two(t_list **stack);
void				sort_three(t_list **stack);
void				sort_five(t_list **src);
void				sort(t_list **src);
int					find_smallest(t_list *stack);
void				move_smallest_value_dst(t_list **src, t_list **dst,
						int position_smallest_value);
void				reset_index(t_list *stack);

/*work with linked lists*/
t_list				*ft_lstmin(t_list *stack);
t_list				*ft_lstmax(t_list *stack);

/* remove */
void				pstack(t_list *stack, char c);

/* error checking */
void				puterror(t_list *src);
int					is_dup(t_list *stack);
int					is_limit_int(t_list *stack);
int					is_valid_int(char **array);
void				check_errors(t_list *src);

/* free */
void				free_stack(t_list *stack);
void				free_array(char **array);

#endif