コード例 #1
0
ファイル: ft_path.c プロジェクト: amineau/lem-in
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);
}
コード例 #2
0
ファイル: main.c プロジェクト: jpirsch/piscines
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);
}