// 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 viziteaza 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ă { viziteaza v s.introdu(v) } altfel { s.scoate(nodTop) } } } // Parcurgerea nodurilor din V pentru fiecare nod u din V { dacă stare[u] == nevizitat { componente_componente = componente_conexe + 1 DFS(u) } }