Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % jestWyborem(+AEgraf, -Graf)
- jestWyborem(A, G) :- iteruj(A, G).
- % iteruj(+AE, -G)
- % to się iteruje po grafie AE
- iteruj([], G).
- iteruj([I|Is], G) :- dlaKazdegoA(I, G, 0), iteruj(Is, G).
- % dlaKazdegoA(+WierzcholekAE, -G, ZAPAMIETANY WIERZCHOLEK)
- % TODO, warunek na wiercholki E
- dlaKazdegoA([e|_], G, V).
- % wiercholoki a muszą spelniac warunek
- dlaKazdegoA([a|EDGES], G, V) :- ma_krawdedzie(V, EDGES, G).
- % rozpakowanie listy
- dlaKazdegoA([V|X], G, 0) :- dlaKazdegoA(X, G, V).
- % szukamy wiercholka V w liscie [L1|L2]
- ma_krawdedzie(V, E, [L1|L2]) :- ma_krawdedzie2(V, E, L1).
- ma_krawdedzie(V, E, [L1|L2]) :- ma_krawdedzie(V, E, L2).
- % jesli trzeci parametr reprezentuje wierzholek V, to odpal kolejna funkcje XD
- ma_krawdedzie2(V, E, [V|RE]) :- ma_krawdedzie3(E, RE).
- % pierwszy parametr tej drugiej listy ignorujemy (to jest to a albo e) xD
- ma_krawdedzie3(E, [_|EDGES]) :- lista_zawiera_sie_w_liscie(E, EDGES).
- lista_zawiera_sie_w_liscie([], EDG).
- lista_zawiera_sie_w_liscie([K|Ks], EDG) :- element_nalezy_do_list(K, EDG), lista_zawiera_sie_w_liscie(Ks, EDG).
- % element_nalezy_do_list(Element, Lista)
- element_nalezy_do_list(E, [E|_]).
- element_nalezy_do_list(E, [_|ES]) :- element_nalezy_do_list(E, ES).
- % [ [v0, a, v1, v3],[v1, e, v2, v3],[v2, a],[v3, a] ]
- % [ [v0, a, v1, v3],[v1, e, v2],[v2, a], [v3, a] ]
- % jestWyborem([ [v0, a, v1, v3],[v1, e, v2, v3],[v2, a],[v3, a] ], [ [v0, a, v1, v3],[v1, e, v2],[v2, a], [v3, a] ])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement