欢迎24级新生

1402. 输出所有简单路径

【例4.7】下图G采用“邻接矩阵”存储,设计一个算法输出图G中从顶点u到v的“所有”简单路径(假设图G中从顶点u到v至少有一条简单路径)。

输入

输入两个整数,表示起点u和终点v的编号。(0 ≤ u,v ≤ 4)

输出

输出可能有多行,每一行输出从u到v的一条简单路径。 查找相邻顶点时按照编号从小到大的顺序进行。

样例

标准输入 复制文本
0 3
标准输出 复制文本
013
0143
0413
043
标准输入 复制文本
0 2
标准输出 复制文本
0132
01432
04132
0432

提示

//参考代码

define MAXV 50 //最大顶点个数
define MAXL 20
define INF 0x3f3f3f3f //表示∞

//邻接矩阵的类型定义如下: typedef struct { int no; //顶点编号

char data[MAXL]; //顶点其他信息

} VertexType; //顶点类型 typedef struct { int edges[MAXV][MAXV]; //邻接矩阵的边数组

int n,e; //顶点数,边数 VertexType vexs[MAXV]; //存放顶点信息

} MGraph; //完整的图邻接矩阵类型 void CreateMat(MGraph &g,int A[][MAXV],int n,int e) //建立图的邻接矩阵 { int i,j;

g.n=n; g.e=e; for (i=0;i<n;i++) for (j=0;j<n;j++) g.edges[i][j]=A[i][j];

}

登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 272
通过 149