- 0
- 0
- 约9.6千字
- 约 8页
- 2019-10-25 发布于湖北
- 举报
1、 将顶点放在两个集合V1 和V2。对每个顶点,检查其和邻接点是否在同一个集合中,如
是,则为非二部图。为此,用整数1 和2 表示两个集合。再用一队列结构存放图中访问的顶
点。
int BPGraph (AdjMatrix g)
//判断以邻接矩阵表示的图g 是否是二部图。
{int s[]; //顶点向量,元素值表示其属于那个集合(值1 和2 表示两个集合)
int Q[];//Q 为队列,元素为图的顶点,这里设顶点信息就是顶点编号。
int f=0,r,visited[]; //f 和r 分别是队列的头尾指针,visited[]是访问数组
for (i=1;i=n;i++) {visited[i]=0;s[i]=0;} //初始化,各顶点未确定属于那个
集合
Q[1]=1; r=1; s[1]=1;//顶点1放入集合S1
while(fr)
{v=Q[++f]; if (s[v]==1) jh=2; else jh=1;//准备v 的邻接点的集合号
if (!visited[v])
{visited[v]=1; //确保对每一个顶点,都要检查与其邻接点不应在一个集合中
for (j=1,j=n;j++)
if (g[v]
原创力文档

文档评论(0)