Java图的建立

来源:互联网 发布:免费手机pdf编辑软件 编辑:程序博客网 时间:2024/05/22 06:24

图在计算机中,是一种非常有用的数据结构,而本博文我们采用java来模拟图(无权图和带权图)。

从数学意义上说,树是图的一种。而在计算机中,图的应用方式与树不一样。图通常有一个固定的形状,由物理或抽象的问题所决定的。而在图中,节点可能代表任务,有向边则代表某个任务必须在另一个任务前完成。故而,图的形状取决于真是世界的具体情况。图的节点叫做顶点。

图的顶点的java:

class Vertex              //顶点类

{

       public char lab;

       public boolean wasVisited;

       public Vertex(char lab)

       {

              label = lab;

              wasVisited = false;

        }

}

顶点对象也能放在数组中,用下标指示。

Vertex[] vertexList = new Vertex[nVerts++];                  //将顶点形成一个数组来配合使用

下面是图类:

class Graph

{

                vertexList = new Vertex[MAX_VERTS];    //数组
adjMat = new int[MAX_VERTS][MAX_VERTS];   //二维数组模拟邻接矩阵
nVerts = 0;
for(int i = 0; i < MAX_VERTS; i++)    //初始化邻接矩阵
{
for(int j = 0; j < MAX_VERTS; j++)
{
adjMat[i][j] = 0;
}
sortedArray = new char[MAX_VERTS];
}
}
public void addVertex(char lab)                 //无向图插入一个顶点
{
vertexList[nVerts++] = new Vertex(lab);
}
public void addEdge(int start,int end)          //无向图插入一条边,注意是无向图,所以两边都要插入
{
adjMat[start][end] = 1;
adjMat[end][start] = 1;
}
public void displayVertex(int v)
{
System.out.print(vertexList[v].label);
}

}

        


0 0
原创粉丝点击