In linea di massima so cosa si intende per pseudocodice, e ovviamente quello che ho postato non lo è.
Semplicemente mi sono limitato a riportare in C++ lo schema generale della funzione ricorsiva che ho scritto (che è molto più articolata, con molti più controlli, etc...), nella speranza di rendere l'idea... se poi non ci sono riuscito mi dispiace.
In ogni caso penso che l'idea di base dovrebbe essere abbastanza chiara: il for cicla tra i nodi, CONDIZIONE_1 verifica se il nodo corrente può far parte del ciclo e CONDIZIONE_2 verifica se il ciclo ottenuto sia valido.
migliorabile ha scritto:
problema 3: fai un uso strano di vector: togli nodi dalla testa e li aggiungi in coda. questo vuol dire che potresti analizzare il nodo piu' volte.
Nel codice completo ci sono tutti i controlli affinché non vengano riprovate strade già percorse.
Inoltre sia le aggiunte che le rimozioni avvengono entrambe in coda al vector ciclo, con lo scopo appunto di andare a sondare i vari percorsi possibili.