图(Graph)是为了模拟解决一类现实中的问题的而设计的数据结构,个人觉得相对于二叉搜索树,它并没有什么算法操作的的优势,只是它可以很好的模拟显示中的图问题。图的表示可以用邻接矩阵和邻接表来表示,本文就使用邻接矩阵的方法实现了一下简单的无向图。
package com.wly.algorithmbase.datastructure;/** * 无向图 * @author wly * */public class NoDirectionGraph { private int MAX_SIZE = 10; //图中包含的最大顶点数 private Vertex[] vertexList; //顶点数组 private int[][] indicatorMat; //指示顶点之间的连通关系的邻接矩阵 private int nVertex; //当前实际保存的顶点数目 public NoDirectionGraph() { vertexList = new Vertex[MAX_SIZE]; indicatorMat = new int[MAX_SIZE][MAX_SIZE]; nVertex = 0; //初始化邻接矩阵元素为0 for(int j=0;j测试一下:
package com.wly.algorithmbase.datastructure;public class Test { public static void main(String[] args) { NoDirectionGraph graph = new NoDirectionGraph(); graph.addVertex(new Vertex("A")); graph.addVertex(new Vertex("B")); graph.addVertex(new Vertex("C")); graph.addVertex(new Vertex("D")); graph.addEdge(0, 1); graph.addEdge(0, 2); graph.addEdge(1, 3); graph.addEdge(2, 3); graph.printIndicatorMat(); }}运行结果:
0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0这里描述了如下的图结构:
O啦~~~
转载请保留出处:
谢谢!!