Jak przedstawiać ukierunkowany cykliczny wykres w Prologu z bezpośrednim dostępem do sąsiednich pionów
Muszę skonstruować graf skierowany (w czasie wykonywania) z cyklami w Prologu i nie jestem pewien, jak go reprezentować. Moje wymaganie jest takie, że muszę przejść z jednego wierzchołka do jego sąsiada w stałym czasie.
Czy możliwe jest przedstawienie go jako drzewa, np .:
t(left_son,V,right_son)
ale jak rozwiązać cykle?
Mogę zrobić listę krawędzi:
graph([a,b,c,d],[e(a,b),e(b,c),e(c,a),e(c,d)])
Lub tylko
[a->[b],b->[c],c->[a,d],d->[]]
ale jak uniknąć wywoływania funkcji 'member' na liście podczas wyszukiwania sąsiadów, co kosztuje czas liniowy?Dzięki za pomoc