求这段c++代码的主函数 试基于图的深度优先搜索策略写一算法, 判别以邻接表方式存储的有向图

题目是这样的:
试基于图的深度优先搜索策略写一算法,
判别以邻接表方式存储的有向图中是否存在由顶
点vi到顶点vj的路径(i≠j)。 注意:算法中涉及
的图的基本操作必须在此存储结构上实现。

然后代码缺个主函数不会写 急求 谢谢了!

#include <iostream>
#include <queue>
#include <stdlib.h>
#include <assert.h>
#define MAX_VERTEX_NUM 20
#define FALSE 0
#define TRUE 1
using namespace std;
typedef int Status;

Status visited[MAX_VERTEX_NUM];
typedef char VertexType;
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;
} ALGraph;

Status DfsReachable(ALGraph g, int i, int j)
/* Judge if it exists a path from vertex 'i' to */
/* vertex 'j' in digraph 'g'. */
/* Array 'visited[]' has been initialed to 'false'.*/
{
ArcNode *p;
int e,k;
queue<int>Q;

if(!g.vexnum || !g.arcnum)//图的当前顶点数或弧数为0时
return 0;
else{
Q.push(i);
while(!Q.empty()){
Q.pop();
visited[e] = 1;//标记被访问过的顶点
p = g.vertices[e].firstarc;
for(; p != NULL; p = p -> nextarc){
k = p -> adjvex;//当前弧所指向顶点的位置
if(k == j)
return 1;
else if(!visited[k])//当前顶点未被访问过
Q.push(k);
}
}
return 0;
}
}

int main()
{

}

第1个回答  2017-05-15
具体可以和我谈。