解题思路:
这道题要求使用邻接表的形式储存有向图,再用深度优先的搜索策略,判断是否存在vi到vj的路径。
邻接表的宏定义大致如下:
深度优先策略,即DFS,要用递归的方式去完成纵向遍历。
具体操作见代码,代码中有部分注释。
题解代码:
#include<stdio.h>
#include<stdlib.h>
#define MAX 200
#define FALSE 0
#define TRUE 1
typedef struct EdgeNode{
int endvex;//相邻顶点字段
int weight;//边的权(本题不用)
struct EdgeNode *nextedge;//链字段
}EdgeList;//边表
typedef struct{
int vertex;//顶点信息
EdgeList *edgelist;//边表头指针
}VexNode;