您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页c的所有路径

c的所有路径

来源:华佗小知识
 /*

首先我想说明几点问题。

1.我不知道你的题意中的路径是单向的还是双向的,不过我把路径设置成双向的了

2.说一下我程序的输入,首先输入一个n,表示该图中有n条路;然后有n行,每行

两个数x, y(1<=x, y<=99),表示这两个地点有一条路径。最后输入两个数, 表示计算这两点之间所有的路径

3.我的思路用的是深搜,不过广搜也是可以的 */

#include #include

int path[100][100];///path[i][j]为0表示i, j两点之间不通,为1表示有一条路

int stack[120], m=1, n, x, y;///存储路径

void dfs(int p) {

int i, j;

for(i=1; i<=100; i++) {

if(path[p][i]==1) {

if(i == y)///如果深搜到了终点,就输出刚才经过的路径 {

for(j=0; jprintf(\"%-5d\ }

printf(\"%-5d\\n\ }

else///如果该点不是终点 {

stack[m] = i;///将该点存起来 m++;

dfs(i);///接着深搜 m--; }

} } }

int main() {

int i, j;

memset(path, 0, sizeof(path)); scanf(\"%d\ for(i=0; iscanf(\"%d %d\

path[x][y] = path[x][y] = 1;///这两点之间有路径 }

scanf(\"%d %d\ stack[0] = x; dfs(x); }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务