/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* test.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: tmaze +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/03/28 11:37:06 by tmaze #+# #+# */ /* Updated: 2019/04/05 13:59:02 by tmaze ### ########.fr */ /* */ /* ************************************************************************** */ #include "lem_in.h" #define NB_NODES 4 int add_link(t_lmdata *data, int n1, int n2) { return (lst_indadd(&(data->adj[n1]), n2) && lst_indadd(&(data->adj[n2]), n1)); } int main(void) { t_lmdata data; t_ind **path; t_ind *it; int i; data.nb_nodes = NB_NODES; if ((data.adj = (t_ind**)ft_memalloc(sizeof(t_ind*) * NB_NODES)) == NULL) return (1); if (!add_link(&data, 0, 2) || !add_link(&data, 0, 1) || !add_link(&data, 0, 3)) { lst_inddel(&(data.adj[3])); lst_inddel(&(data.adj[2])); lst_inddel(&(data.adj[1])); lst_inddel(&(data.adj[0])); ft_memdel((void**)&(data.adj)); return (1); } /* if (!add_link(&data, 1, 4)) */ /* { */ /* lst_inddel(&(data.adj[2])); */ /* lst_inddel(&(data.adj[1])); */ /* lst_inddel(&(data.adj[0])); */ /* ft_memdel((void**)&(data.adj)); */ /* return (1); */ /* } */ /* if (!add_link(&data, 2, 3) || !add_link(&data, 2, 5)) */ /* { */ /* lst_inddel(&(data.adj[3])); */ /* lst_inddel(&(data.adj[2])); */ /* lst_inddel(&(data.adj[1])); */ /* lst_inddel(&(data.adj[0])); */ /* ft_memdel((void**)&(data.adj)); */ /* return (1); */ /* } */ /* if (!add_link(&data, 3, 6)) */ /* { */ /* lst_inddel(&(data.adj[5])); */ /* lst_inddel(&(data.adj[3])); */ /* lst_inddel(&(data.adj[2])); */ /* lst_inddel(&(data.adj[1])); */ /* lst_inddel(&(data.adj[0])); */ /* ft_memdel((void**)&(data.adj)); */ /* return (1); */ /* } */ /* if (!add_link(&data, 4, 5)) */ /* { */ /* lst_inddel(&(data.adj[6])); */ /* lst_inddel(&(data.adj[5])); */ /* lst_inddel(&(data.adj[3])); */ /* lst_inddel(&(data.adj[2])); */ /* lst_inddel(&(data.adj[1])); */ /* lst_inddel(&(data.adj[0])); */ /* ft_memdel((void**)&(data.adj)); */ /* return (1); */ /* } */ /* if (!add_link(&data, 5, 6) || !add_link(&data, 5, 7)) */ /* { */ /* lst_inddel(&(data.adj[6])); */ /* lst_inddel(&(data.adj[5])); */ /* lst_inddel(&(data.adj[4])); */ /* lst_inddel(&(data.adj[3])); */ /* lst_inddel(&(data.adj[2])); */ /* lst_inddel(&(data.adj[1])); */ /* lst_inddel(&(data.adj[0])); */ /* ft_memdel((void**)&(data.adj)); */ /* return (1); */ /* } */ /* if (!add_link(&data, 6, 7)) */ /* { */ /* lst_inddel(&(data.adj[7])); */ /* lst_inddel(&(data.adj[6])); */ /* lst_inddel(&(data.adj[5])); */ /* lst_inddel(&(data.adj[4])); */ /* lst_inddel(&(data.adj[3])); */ /* lst_inddel(&(data.adj[2])); */ /* lst_inddel(&(data.adj[1])); */ /* lst_inddel(&(data.adj[0])); */ /* ft_memdel((void**)&(data.adj)); */ /* return (1); */ /* } */ ft_printf("===== list of adj =====\n"); i = 0; while (i < NB_NODES) { ft_printf("===== adj of %d =====\n", i); it = data.adj[i]; while (it) { ft_printf("index: %d\nweight: %d\n\n", it->index, it->weight); it = it->next; } i++; } path = edmunds_karp(&data, 0, 1); if (path != NULL) { i = 0; while (path[i]) { it = path[i]; while (it) { ft_printf(" %d -> ", it->index); it = it->next; } ft_putchar('\n'); i++; } } tablst_inddel(path); /* lst_inddel(&(data.adj[7])); */ /* lst_inddel(&(data.adj[6])); */ /* lst_inddel(&(data.adj[5])); */ /* lst_inddel(&(data.adj[4])); */ lst_inddel(&(data.adj[3])); lst_inddel(&(data.adj[2])); lst_inddel(&(data.adj[1])); lst_inddel(&(data.adj[0])); ft_memdel((void**)&(data.adj)); return (0); }