hewow owo

added header, libft and all basic interactions with stack
This commit is contained in:
Tanguy MAZE 2019-02-21 16:49:39 +01:00
commit 26f2acfcad
7 changed files with 172 additions and 0 deletions

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "libft"]
path = libft
url = https://github.com/tvdu29/libft.git

40
includes/push_swap.h Normal file
View File

@ -0,0 +1,40 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* push_swap.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tmaze <tmaze@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/02/21 14:13:53 by tmaze #+# #+# */
/* Updated: 2019/02/21 16:05:33 by tmaze ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef PUSH_SWAP_H
# define PUSH_SWAP_H
# include <stdlib.h>
# include <unistd.h>
# include "libft.h"
typedef struct s_stack
{
int nb;
struct s_stack *next;
} t_stack;
t_stack *ps_stknew(int nb);
void *ps_stkpsh(t_stack **s, t_stack *new);
t_stack *ps_stkpop(t_stack **s);
size_t ps_stksize(t_stack *s);
void ps_swap(t_stack **s);
void ps_sswap(t_stack **a, t_stack **b);
void ps_push(t_stack **s1, t_stack **s2);
void ps_rot(t_stack **s);
void ps_rrot(t_stack **a, t_stack **b);
void ps_rerot(t_stack **s);
void ps_rrerot(t_stack **a, t_stack **b);
#endif

1
libft Submodule

@ -0,0 +1 @@
Subproject commit 4b44c49fc6caa15379cd821f967e53462d4dc837

21
srcs/ps_push.c Normal file
View File

@ -0,0 +1,21 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ps_push.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tmaze <tmaze@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/02/21 15:59:46 by tmaze #+# #+# */
/* Updated: 2019/02/21 16:06:04 by tmaze ### ########.fr */
/* */
/* ************************************************************************** */
#include "push_swap.h"
void ps_push(t_stack **s1, t_stack **s2)
{
t_stack *tmp;
tmp = ps_stkpop(s2);
ps_stkpsh(s1, tmp);
}

40
srcs/ps_rerot.c Normal file
View File

@ -0,0 +1,40 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ps_rerot.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tmaze <tmaze@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/02/21 16:32:04 by tmaze #+# #+# */
/* Updated: 2019/02/21 16:38:13 by tmaze ### ########.fr */
/* */
/* ************************************************************************** */
#include "push_swap.h"
void ps_rerot(t_stack **s)
{
t_stack *prec;
t_stack *tmp;
if (*s != NULL && ps_stksize(*s) > 2)
{
prec = *s;
tmp = (*s)->next;
while (tmp->next != NULL)
{
tmp = tmp->next;
prec = prec->next;
}
prec->next = NULL;
ps_stkpsh(s, tmp);
}
else if (*s != NULL && ps_stksize(*s) == 2)
ps_swap(s);
}
void ps_rrerot(t_stack **a, t_stack **b)
{
ps_rerot(a);
ps_rerot(b);
}

36
srcs/ps_rot.c Normal file
View File

@ -0,0 +1,36 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ps_rot.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tmaze <tmaze@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/02/21 16:07:55 by tmaze #+# #+# */
/* Updated: 2019/02/21 16:26:22 by tmaze ### ########.fr */
/* */
/* ************************************************************************** */
#include "push_swap.h"
void ps_rot(t_stack **s)
{
t_stack *tmp;
t_stack *ind;
if (*s != NULL && ps_stksize(*s) > 2)
{
tmp = ps_stkpop(s);
ind = *s;
while (ind->next != NULL)
ind = ind->next;
ind->next = tmp;
}
else if (*s != NULL && ps_stksize(*s) == 2)
ps_swap(s);
}
void ps_rrot(t_stack **a, t_stack **b)
{
ps_rot(a);
ps_rot(b);
}

31
srcs/ps_swap.c Normal file
View File

@ -0,0 +1,31 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ps_swap.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tmaze <tmaze@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/02/21 14:06:40 by tmaze #+# #+# */
/* Updated: 2019/02/21 15:19:00 by tmaze ### ########.fr */
/* */
/* ************************************************************************** */
#include "push_swap.h"
void ps_swap(t_stack **s)
{
int tmp;
if (*s != NULL && ps_stksize(*s) >= 2)
{
tmp = (*s)->nb;
(*s)->nb = (*s)->next->nb;
(*s)->next->nb = tmp;
}
}
void ps_sswap(t_stack **a, t_stack **b)
{
ps_swap(a);
ps_swap(b);
}