Navigazione grafica con C #
-
03-07-2019 - |
Domanda
Ho un po 'di dilemma nel tentativo di trovare un buon algoritmo per navigare nel seguente grafico.
alt text http://www.archimedesinc.biz/images/StackOverflow/Tree .jpg
Se un utente sceglie " Tabella 21 " come punto di partenza, devo essere in grado di ottenere il percorso per qualsiasi altra tabella da quella tabella iniziale.
EX: se l'utente sceglie " Tabella 21 " come inizio e quindi aggiunge un valore da " Tabella 8 " ;, devo creare il seguente percorso " Tabella 21 - > Tabella 12 - > Tabella 9 - > Tabella 6 - > Tabella 8 " ;, tutti i pesi tra le tabelle sono uguali.
Mi sembra di aver dimenticato le mie capacità nel gestire i grafici diretti e non riesco a pensare a un buon algoritmo. Non sto chiedendo una soluzione, ma solo una spinta nella giusta direzione.
Grazie!
Soluzione
La prima ricerca troverà un percorso più breve: http://en.wikipedia.org / wiki / Larghezza-first_search
Altri suggerimenti
Dato che hai detto che i bordi hanno tutti lo stesso peso, L'algoritmo di Dijkstra ( la mia solita prima scelta per questo genere di cose) degraderà a breadth first search Suggerisco di usarlo per semplicità.
Puoi scegliere tra una serie di algoritmi per determinare il percorso più breve. QuickGraph è bravo in questo genere di cose.