public void dfs() // depth-first search{ // begin at vertex 0vertexList[0].wasVisited = true; // mark itdisplayVertex(0); // display ittheStack.push(0); // push itwhile( !theStack.isEmpty() ) // until stack empty,{// get an unvisited vertex adjacent to stack topint v = getAdjUnvisitedVertex( theStack.peek() );if(v == -1) // if no such vertex,theStack.pop(); // pop a new oneelse // if it exists,{vertexList[v].wasVisited = true; // mark itdisplayVertex(v); // display ittheStack.push(v); // push it}} // end while// stack is empty, so we're donefor(int j=0; j<nVerts; j++) // reset flagsvertexList[j].wasVisited = false;} // end dfs