push_swap/src/push_swap.c
2024-11-07 17:28:35 +01:00

79 lines
2.0 KiB
C

/* ************************************************************************** */
/* */
/* ::: o_ :::::: ::: */
/* push_swap.c :+: / :+::+: :+: */
/* +:+ > +:++:+ +:+ */
/* By: whaffman <whaffman@student.codam.nl> +#+ +:+ +#++#++:++#++ */
/* +#+ +#+#+ +#++#+ +#+ \o/ */
/* Created: 2024/11/04 13:04:11 by whaffman #+#+# #+#+# #+# #+# | */
/* Updated: 2024/11/07 15:26:58 by whaffman ### ### ### ### / \ */
/* */
/* ************************************************************************** */
#include "libft.h"
#include "push_swap.h"
#include <stdio.h>
#include <stdlib.h>
void print_stack(const char *name, t_list *stack)
{
int lst_size;
t_list *node;
ft_printf("%s |", name);
if (!stack)
{
ft_printf("\n");
return ;
}
lst_size = ft_lstsize(stack);
while (lst_size > 0)
{
node = ft_lstat(stack, lst_size - 1);
ft_printf("%d ", *((int *) node->content));
lst_size--;
}
ft_printf("\n");
}
void print_state(t_state *state)
{
ft_printf("\n");
print_stack("A", state->a);
print_stack("B", state->b);
ft_printf("===================\n");
}
t_state *initialise_state(t_state **state)
{
*state = malloc(sizeof (t_state));
if (*state)
{
(*state)->a = NULL;
(*state)->b = NULL;
}
return (*state);
}
int main(int argc, char *argv[])
{
t_state *state;
state = NULL;
if (!initialise_state(&state))
return (1);
while (argc-- > 1)
{
if (!new_element(&(state->a), argv[argc]))
{
ft_putstr_fd("Error\n", 2);
return (1);
}
}
ft_printf("min: %d\n", stack_min(state->a));
ft_printf("max: %d\n", stack_max(state->a));
sort5(state);
print_state(state);
return (0);
}