m0_63999697 2022-05-17 16:54 采纳率: 93.5%
浏览 83
已结题

判断一个无向图中两个顶点连通 为什么错了

给定无向图的数据类型如下
#define MAXVEX 100
typedef char VertexType;
typedef int EdgeType;
typedef struct {
VertexType vexs[MAXVEX]; //顶点表
EdgeType edge[MAXVEX][MAXVEX]; //邻接矩阵,即边表
int visited[MAXVEX];//遍历标记. 1:已遍历 0:未遍历
int vertexNum,edgeNum;
}MGraph,*Graph;

请设计int connect(Graph g, VertexType v, VertexType u)函数。
该函数判断图中两个顶点v和w是否连通,连通返回1,不连通返回0。
请注意,本题有预置代码,只需提交所要求的函数定义代码即可。

int connect(Graph g, VertexType v, VertexType u)
{
    int i,j;
    i=locateVertex(g,v);
    j=locateVertex(g,u);
    if(i!=-1&&j!=-1&&g->edge[i][j]!=0&&g->edge[j][i]!=0) return 1;
    return 0;
}

  • 写回答

2条回答 默认 最新

  • q779 2022-05-17 22:01
    关注

    从u节点跑一遍dfs,如果可以访问到v,则u,v连通。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月26日
  • 已采纳回答 5月18日
  • 创建了问题 5月17日