Witajcie,
Mam na starcie taką tablicę z portami lotniczymi:
FROM | TO |
---|---|
FRA | JFK |
FRA | SIN |
FRA | ROM |
JFK | JCO |
JFK | FRA |
SIN | FRA |
SIN | TKY |
itd.
Table pokazuje możliwe połączenia między miastami. Potrzebuję algorytmu, który znajdzie wszystkie możliwe połączenia z jednego portu do drugiego łączenie z przesiadkami. Nie chcę ograniczać liczby przesiadek, lecz zrobić to jakąś funkcją rekurencyjną, która by pokazywała wszystkie możliwe opcje. Zakładam, że nie ma sensu wracać do miasta w którym się już było.
Mniej więcej widzę jak to powinno wyglądać, ale nie mogę napisać działającej funkcji rekurencyjnej która by znajdywała wszystkie drogi, usuwała po drodze miejsca już odwiedzone itp. Czy ktoś mógłby poratować i napisać jak to powinno wyglądać w pseudo-kodzie, pascalu, c++? Ewentualnie konkretny przepis jak to zaprogramować.