Ok, già in anticipo, ho intenzione di dirti, che questo è un compito extra per il corso sulla struttura dei dati che sto prendendo. Questo dovrebbe occuparsi di tutte le domande se questo è o meno per un compito a casa.
Creatore del percorso
Ho un compito, in cui un'azienda deve creare un percorso per un determinato set di dati. Il set di dati può essere inserito per ogni operazione e, alla fine, dovrebbe stampare il percorso ottimale. Le condizioni sono le seguenti:
- Le strade possono essere dirette solo Nord-Sud o Est-Ovest, rendendo effettivamente ogni angolo tra 2 strade a 90 gradi.
- Il set di dati include strade, incroci e luoghi per scegliere il cliente e dove lasciarlo, così come il punto di partenza per la macchina.
Il mio problema è che ho problemi a pensare alla corretta struttura dei dati per farlo. Ciò che è venuto fuori prima dalla cima della mia testa era un grafico direzionale. In teoria, dovrebbe adattarsi perfettamente
- Le strade sono introdotte in primo piano con identificatori numerici
- Un nodo rappresenta la giunzione ed è rappresentato dagli id delle strade
- Un bordo tra 2 nodi rappresenta un pezzo di strada e ha lunghezza
- I luoghi di interesse sono in effetti una sottoclasse di nodi di giunzione, pertanto hanno una distanza da un nodo all'altro.
Il miglior percorso sarebbe quindi calcolato trovando il percorso più breve dal punto di partenza dell'auto al punto di partenza del cliente + il percorso più breve dal punto di partenza del cliente al punto finale del cliente + il percorso più breve dal posto finale del cliente al punto di partenza dell'auto.
Il mio modo di pensare in questa faccenda è corretto anche a distanza? Sto trovando questo piuttosto difficile da immaginare con qualsiasi altra struttura di dati di un grafico diretto, ma forse sto solo limitando le mie opzioni con questo pensiero.