如何使用java生成一个随机的无向图,并且使得两边相连,则a[i][j]为1,并且a[i][i]表示第i个节点的度

Python010

如何使用java生成一个随机的无向图,并且使得两边相连,则a[i][j]为1,并且a[i][i]表示第i个节点的度,第1张

int nodeNum=10//顶点

int tu[nodeNum][nodeNum]={0}//初始化邻接矩阵

while(次数条件){

//随机生成有连接的顶点标号

int nodeBegin=random()

int nodeEnd=random()

//双向连接,实现无向

tu[nodeBegin][nodeEnd]=1

tu[nodeEnd][nodeBegin]=1

}

数学意义上讲,树是图的一种,大家可以对比着学习。

1、图的定义

我们知道,前面讨论的数据结构都有一个框架,而这个框架是由相应的算法实现的,比如二叉树搜索树,左子树上所有结点的值均小于它的根结点的值,右子树所有结点的值均大于它的根节点的值,类似这种形状使得它容易搜索数据和插入数据,树的边表示了从一个节点到另一个节点的快捷方式。

而图通常有个固定的形状,这是由物理或抽象的问题所决定的。比如图中节点表示城市,而边可能表示城市间的班机航线。如下图是美国加利福利亚简化的高速公路网:

①、邻接:

如果两个顶点被同一条边连接,就称这两个顶点是邻接的,如上图 I 和 G 就是邻接的,而 I 和 F 就不是。有时候也将和某个指定顶点邻接的顶点叫做它的邻居,比如顶点 G 的邻居是 I、H、F。