// Inițializări pentru fiecare nod u din V { stare[u] = nevizitat } componente_conexe = 0 // Funcție de vizitare a nodului vizitare(nod) { stare[nod] = vizitat printeaza nod } // Parcurgerea în adâncime DFS(nod) { stiva s vizitare(nod) s.introdu(nod) cât timp stiva s nu este goală { nodTop = nodul din vârful stivei vecin = află primul vecin nevizitat al lui nodTop dacă vecin există { vizitare(vecin) s.introdu(vecin) } altfel { s.scoate(nodTop) } } } // Parcurgerea nodurilor din V pentru fiecare nod u din V { dacă stare[u] == nevizitat { componente_conexe = componente_conexe + 1 DFS(u) } }