/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* push_swap.h :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: tmaze +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/02/21 14:13:53 by tmaze #+# #+# */ /* Updated: 2019/03/16 13:32:59 by tmaze ### ########.fr */ /* */ /* ************************************************************************** */ #ifndef PUSH_SWAP_H # define PUSH_SWAP_H # include # include # include "libft.h" typedef struct s_stack { int nb; int ind; struct s_stack *next; } t_stack; typedef struct s_psdata { t_stack *a; t_stack *b; size_t size_a; size_t size_b; t_list *op; char viz; } t_psdata; t_stack *ps_stknew(int nb); void ps_stkpsh(t_psdata *data, char c, t_stack *new); t_stack *ps_stkpop(t_psdata *data, char c); void ps_stkclean(t_psdata *data); void ps_initdata(t_psdata *data); void ps_swap(t_psdata *data, char c); void ps_sswap(t_psdata *data); int ps_push(t_psdata *data, char c); void ps_rot(t_psdata *data, char c); void ps_rrot(t_psdata *data); void ps_rerot(t_psdata *data, char c); void ps_rrerot(t_psdata *data); int is_op(char *buff); t_list *add_op(t_psdata *data, char *op); int get_params(t_psdata *data, int ac, char **av, int viz); int check_input(char *in, int *ret); void mark_groups(t_psdata *data); t_stack *get_last_a(t_psdata *data); int get_size_firsts(t_psdata *data); int get_size_last(t_psdata *data); int get_nb_groups(t_psdata *data); void sortfor3(t_psdata *data); void sortfor5(t_psdata *data); void clean_op(t_psdata *data); int sort(t_psdata *data); #endif