Ho un problema a cui deve passare un ragazzodiversi pilastri, dove sono collegati da ponti con fori. Il ragazzo deve scegliere il modo migliore attraverso i pilastri. Il modo migliore è quello con meno buchi dal pilastro iniziale all'ultimo.
Ecco un'immagine fornita con il problema.
Il programma riceverà come input una descrizionedel numero di fori tra ogni pilastro e il numero di pilastri e ponti. Il ragazzo deve andare solo in una direzione verso l'ultimo pilastro (non tornare indietro).
A me sembra un problema di ricerca dell'albero, ma iomi è stato detto che non dovrei usare i puntatori in questo problema perché c'è un modo per organizzarlo e risolverlo senza usare le definizioni classiche dell'albero C nell'assemblaggio (dove sarebbe molto più difficile), solo usando la ricorsione.
Come posso organizzare la "struttura ad albero" senza usare i vettori / puntatori dinamici?
risposte:
1 per risposta № 1Puoi creare una matrice "nxn" (un array di lunghezza n ^ 2), dove matrix[i, j]
è la quantità di buchi tra loro.
Se non esiste alcun percorso tra i nodi i
e j
, la quantità di fori è infinita (2 ^ 31-1).
Quindi puoi trovare il percorso migliore usando la ricorsione o semplicemente usando l'algoritmo Dijkstra.