図隣接マトリックス深さ優先エルゴード

3843 ワード

Eclipse javaプロジェクト:図の深さは優先的に遍歴し、広さは優先的にdemoを遍歴する:http://download.csdn.net/detail/keen_zuxwang/9875848
import java.util.ArayList;import java.util.Linked List;/**@description隣接マトリックスモデルクラス*/public class Graph{prvate ArayList vertexList]//格納点のチェーンプリヴァットポイント[]edges;/隣接マトリックスは、サイドprivte int numOfEdgesを格納するために使用されます./辺の数prvate int n;
public Graph(int n) {
    //     ,    ,     
    this.n = n;
    edges=new int[n][n];
    vertexList=new ArrayList(n);
    numOfEdges=0;
}

//       
public int getNumOfVertex() {
    return vertexList.size();
}

//      
public int getNumOfEdges() {
    return numOfEdges;
}

//    i   
public Object getValueByIndex(int i) {
    return vertexList.get(i);
}

//  v1,v2   
public int getWeight(int v1,int v2) {
    if((v1>=0 && v1=0 && v20) {
            return j;
        }
    }
    return -1;
}

//                      
public int getNextNeighbor(int v1,int v2) {
    for (int j=v2+1;j0) {
            return j;
        }
    }
    return -1;
}

public static void main(String args[]) {
    int n=4,e=4;//             
    int i = 0, j;
    int idx;
    String labels[]={"V0","V1","V2","V3"};//     
    Graph graph=new Graph(n);

    for(String label:labels) {
        graph.insertVertex(label);//    
        System.out.print("  "+i+",   "+label+"
"); i++; } System.out.print("
"); // graph.insertEdge(0, 1, 2); //v0 v1 graph.insertEdge(0, 2, 5); //v0 v2 graph.insertEdge(0, 3, 1); //v0 v3 graph.insertEdge(2, 3, 8); //v2 v3 graph.insertEdge(3, 0, 7); //v3 v0 System.out.println(" :"+graph.getNumOfVertex()); System.out.println(" :"+graph.getNumOfEdges()); System.out.print("
"); System.out.print("
"); for(i=0; i0){ idx = graph.getNextNeighbor(0, idx); System.out.print(" 0: "+idx+", "+graph.getWeight(0,idx)); System.out.print("
"); if(idx>0){ idx = graph.getNextNeighbor(0, idx); System.out.print(" 0: "+idx+", "+graph.getWeight(0,idx)); System.out.print("
"); if(idx>0){ graph.deleteEdge(0, idx);// System.out.print(" , "); idx = graph.getNextNeighbor(0, idx); System.out.print(" 0: "+idx+", "+graph.getWeight(0,idx)); // -1 System.out.print("
"); System.out.print("

"); for(i=0; i
)
图 邻接矩阵 深度优先遍历 广度优先遍历_第1张图片
图 邻接矩阵 深度优先遍历 广度优先遍历_第2张图片