大学生资料站,一个面向大学生的资源共享平台
题目
设计一个算法,判断无向图G是否连通,连通返回1,否则返回0
思想
首先初始化一个结点数组为0;然后遍历一遍将遍历到的结点数组改为1;最后在遍历一遍结点数组,若有结点为1则返回flase,否则返回true
代码
bool connect(AIGraph *G)
{
int i;
bool flag=true;
for(i=0;i<G->n;i++)
visit[i]=0; //把结点数组全部初始化为0
DFS(G,0); //把遍历道德结点数组置为1
for(i=0;i<G->n;i++)
if(visit[i]==0)
{
flag=true;
break;
}
return flag;
}
题目二
求出邻接矩阵表示的无向图中序号为numb的顶点的度数
代码
int degree(Graph &ga,int numb)
{
int j,d=0;
for(j=0;j<ga.vexnum;j++)
if(ga.cost[numb][j]!=0&&ga.cost[numb][j]!=MAXINT)
d++;
return d;
}
题目三
求出邻接矩阵表示的有向图中序号为numb的顶点的度数
代码
int degree(Graph &ga,int numb)
{
int i,j,d=0;
for(j=0;j<ga.vexnum;j++)
if(ga.cost[numb][j]!=0&&ga.cost[numb][j]!=MAXINT)
d++;
for(i=0;i<ga.vexnum;i++)
if(ga.cost[i][numb]!=0&&ga.cost[i][numb]!=MAXINT)
d++;
return d;
}