ALGAV - Ficha 7

Hipótese de resolução da alínea 1 da Ficha 7

go(Origem,Percurso):-
findall([A,B], estrada(A,B), LL), une(LL, LN),
go1(Origem,Origem,LN,Percurso).

go1(O,X,[O],[X,O]):-

estrada(X,O);estrada(O,X).

go1(O,Ultimo,LN,[Ultimo|Perc]):-

remove(X,LN,LN1),
(estrada(Ultimo,X); estrada(X,Ult)),
go1(O,X,LN1,Perc).

união([],L,L).
união([X|L],L1,L2):-member(X,L1),!,união(L,L1,L2).
união([X|L],L1,[X|L2]):-união(L,L1,L2).

une([LH|LT],LU):-une(LT,LU1),união(LH,LU1,LU).
une([],[]).