Depth-First-Traversal und Adj Matrix

Ich versuche zu tun, eine Tiefe ersten Durchlauf. Ich habe keine Ahnung, ob ich auch in der Nähe. Jetzt heißt es drucken 1 3 4 5. Es sollte drucken 1 2 4 7 3 5 6. Jede Hilfe oder Beratung wird geschätzt. Danke. 🙂

Depth-First-Traversal und Adj Matrix

Klasse:

 public class myGraphs {
     Stack<Integer> st;
     int vFirst;

     int[][] adjMatrix;
     int[] isVisited = new int[7];


     public myGraphs(int[][] Matrix) {
         this.adjMatrix = Matrix;
         st = new Stack<Integer>();
         int i;
         int[] node = {1, 2, 3, 4, 5, 6, 7};
         int firstNode = node[0];

         for (i = 1; i < node.length - 1; i++) {
             depthFirst(firstNode, node[i]);
         }
    }

    public void depthFirst(int vFirst, int n) {
        int v, i;

        st.push(vFirst);

        while (!st.isEmpty()) {
            v = st.pop();
            if (isVisited[v]==0) {
                System.out.print("\n"+v);
                isVisited[v]=1;
            }

            for ( i=1;i<=n;i++) {
                if ((adjMatrix[v][i] == 1) && (isVisited[i] == 0)) {
                    st.push(v);
                    isVisited[i]=1;
                    System.out.print(" " + i);
                    v = i;
                }
            }
        }
    }

    //
    public static void main(String[] args) {     
        //1  2  3  4  5  6  7
        int[][] adjMatrix = { {0, 1, 1, 0, 0, 0, 0},
                              {1, 0, 0, 1, 1, 1, 0},
                              {1, 0, 0, 0, 0, 0, 1},
                              {0, 1, 0, 0, 0, 0, 1},
                              {0, 1, 0, 0, 0, 0, 1},
                              {0, 1, 0, 0, 0, 0 ,0},
                              {0, 0, 1, 1, 1, 0, 0}  };

       new myGraphs(adjMatrix);
     }
}
Eine Tiefe-zuerst-Suche für was?
Seine Tiefe suchen für ein Diagramm.
Aber was sind Sie auf der Suche nach?
Sie sind gonna haben, um zu definieren, "Tiefe" hier. Durch meine Lektüre, die ich erwarten würde [1 2 4 7 3 5 6], seit 7 kann gehen, 3 und 5.
Der OP wollte sagen, Tiefe erste traversal.

InformationsquelleAutor TMan | 2011-11-11

Schreibe einen Kommentar