早教吧 育儿知识 作业答案 考试题库 百科 知识分享

最后两题,,首先感谢为我解答上面两题的热心朋友~我是新手,只有几分,但还是求得了答案.是卷子我可以一题一题的问吗?编写一个判别邻接表存储的无向图是否为连通图的算法.#defineMAXVERTEX

题目详情
最后两题,,
首先感谢为我解答上面两题的热心朋友~我是新手,只有几分,但还是求得了答案.
是卷子 我可以一题一题的问吗?
编写一个判别邻接表存储的无向图是否为连通图的算法.
#define MAX_VERTEX_NUM 20
typedef struct ArcNode{
int adjvex;
struct ArcNode*nextarc;
}ArcNode;
typedef struct Vnode{
VertexType data;
ArcNode*firstarc;
}Vnode,AdjList[MAX_VERTEX_NUM];
typedef struct{
AdjList vertices;
int vexnum,arcnum;
int kind;
}ALGraph;
算法中使用全局变量:
Boolean visited[MAX_VERTEX_NUM]
int VertNum;
▼优质解答
答案和解析
bool judge(Graph G,int vexnum)
{
int count =0;
DFScount(G,vexnum,int &count);
if(count == vexnum)return true;
return false;
}
void DFScount(Graph G,int vexnum,int &count)
{
visited[vexnum]=TRUE;
VisitFunc(vexnum);
for(w=FirstAdjvex(G,vexnum);w>=0;w=NextAdjvex(G,vexnum,w))
if(!visited[w])
{DFScount(G,w);count++;}
}