public Graph dfs()
    {
        Util.Stack<Integer> theStack = new Util.StackLinkedList<Integer>();
        
        Graph search = new GraphAdjMatrix();
        ((GraphAdjMatrix)search).vertList = this.vertList;
        
        theStack.push(0);
        vertList[0].wasVisited = true;
//         this.vertList[start].display();
        
        int lastVisited=0;
        
        while( !theStack.isEmpty() )
        {
            int v2 = getAdjUnvisitedVertex( theStack.peek() );
            if( v2 == -1 ) {
                theStack.pop();
            }
            else {
                vertList[v2].wasVisited = true;
                search.einfKante( lastVisited, v2 );
                lastVisited = v2;
//                 vertList[v2].display();
                theStack.push(v2);
            }      
        }
        
        for(int i=0; i<nVerts; i++)
            vertList[i].wasVisited = false;
        
        return search;
    }