int ft_path(t_matrice *m, int id, int cnt) { int x; if (id != 1) { x = 0; while (++x < m->length) { if (m->matrice[id][x] && cnt < m->length) { ft_set_matrice(m->matrice, x, id, 0); m->tmp[cnt] = x; if ((cnt = ft_path(m, x, ++cnt)) > 0) m->tmp[--cnt] = 0; ft_set_matrice(m->matrice, x, id, 1); } } } if (id == 1 && cnt < m->min) { m->min = cnt; ft_memdel((void**)&(m->path_min)); m->path_min = ft_tabcpy(m->tmp, m->length); } return (cnt); }
int main(int ac, char **av) { char **tab; if (ac == 10) { tab = ft_tabcpy(av); ft_display(tab); ft_putchar('\n'); backtrack(tab, 0); ft_display(tab); } else ft_putstr("Erreur\n"); return (0); }