Sto lavorando su un compito in cui uno dei problemi richiede di derivare un algoritmo per verificare se un grafo diretto G = (V, E) è collegato singolarmente (esiste al massimo un percorso semplice da u a v per tutti i vertici distinti u, v di V.Qual è il modo più efficace per determinare se un grafico diretto è collegato singolarmente?
Ovviamente è possibile controllare la forza bruta, che è quello che sto facendo in questo momento, ma voglio sapere se c'è un modo più efficiente. Qualcuno potrebbe indicarmi la giusta direzione?
ho letto altrove che in esecuzione DFS una volta su tutto l'albero dovrebbe essere sufficiente. È necessario correre su ogni vertice? – zebraman
in realtà non importa. domanda stupida. – zebraman
È sufficiente ripetere per ogni vertice non visitato, ma è necessario ri-attraversare tutto a valle (anche quelli contrassegnati come "non visitati"). Quindi avresti bisogno sia dei marchi "mai visitato" che "visitato questa volta". –