79 lines
2.0 KiB
C
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);
|
|
}
|