借鉴了这篇文章https://blog.csdn.net/h471507602/article/details/80452342,感谢!

但是改了节点个数会报错,于是自己打了一个,应该是没错的,本来想好好写一下的,写的又不像C语言又不像C++。。

但是要是修改的话很容易的,自己改吧。

#include<iostream>
#include<vector>#define SUM_NODE 6 // 节点个数using namespace std;
vector<vector<int> > all_pathway;//保存所有路径
vector<int> a_pathway;//保存一条路径
int matrix[SUM_NODE][SUM_NODE];//邻接矩阵
int visited[SUM_NODE];//是否访问
int sum = 1;void init() //矩阵初始化   想要改矩阵在这里
{for(int i=0;i<SUM_NODE;i++){for(int j=0;j<SUM_NODE;j++){if(i==j){matrix[i][j]=0;}else{matrix[i][j]=1;  }}}
}
void output()
{cout << "第" << sum << "条路径:   ";for(int i=0;i<a_pathway.size();i++){cout<<a_pathway.at(i)<<"   ";}cout<<endl;sum++;
}
void DFS(int a[SUM_NODE][SUM_NODE],int start,int end) //深搜遍历
{a_pathway.push_back(start);//将当前节点入栈visited[start]=true;//标记为已经访问过int middle=0;//一个索引,用来找到下一个节点 while(a_pathway.empty()==false)//如果栈空则结束{if(start==end)//如果当前节点就是目标节点{output(); //输出这条路径 all_pathway.push_back(a_pathway);//保存一条路径a_pathway.pop_back();//退栈,回溯visited[start]=false;//设置为没有被访问过 break; //退出一个递归 } while(middle<SUM_NODE)//如果没有到最后一个邻居{if(matrix[start][middle]==1&&visited[middle]==false)//如果与邻居相通且这个邻居节点未被的访问过{DFS(matrix,middle,end); //递归查询 } middle++; //一个一个向后寻找相通的邻居节点 }if(middle==SUM_NODE) //找到最后一个了 {visited[a_pathway.at(a_pathway.size()-1)] = false;//先标记栈中最后一个元素为没有访问过a_pathway.pop_back();//退栈,回溯 break;  //退出一个递归 }}
}int main()
{init();DFS(matrix,0,5);//起点和终点return 0;}

无向图输出两个节点之间的所有路径相关推荐

  1. neo4j java查找_Spring-Boot使用neo4j-java-driver-- 查找两个节点之间关系的最短路径

    一.Cypher数据 create (小北:朋友圈{姓名:"小北", 喜欢的书类:"Poetry"}), (小菲:朋友圈{姓名:"小菲", ...

  2. 算法----- 给定一颗二叉树,找到二叉树上任意两个节点之间的距离(Java版本)

    题目: 给定一颗二叉树,找到二叉树上任意两个节点之间的距离 class TreeNode {TreeNode left;TreeNode right;} 思路: 首先找到一个节点的路径,然后找到另一个 ...

  3. zabbix使用fping监控任意两个节点之间的网络质量、丢包率和响应时间

    zabbix使用fping监控任意两个节点之间的网络质量.丢包率和响应时间 zabbix使用fping监控任意两个节点之间的网络质量.丢包率和响应时间之前的博文 使用zabbix3.0.4的ICMP ...

  4. 查找有向图中两个顶点之间是否存在路径

    查找有向图中两个顶点之间是否存在路径 给定一个有向图和其中的两个顶点,检查是否存在从第一个给定顶点到第二个顶点的路径. Consider the following Graph:Input : (u, ...

  5. 依赖树(dependecyTree)-语义边、两个词语之间的依赖边路径

    依赖树官方文档 参考:https://nlp.stanford.edu/software/dependencies_manual.pdf 依存树参考:https://www.jianshu.com/p ...

  6. 【Python】青少年蓝桥杯_每日一题_11.03_按要求输出两个正整数之间的数

    编程实现 分别输入两个正整数 M.N,输出 M 到 N 之间(含 M.N)所有可被 7 整除,但不是 5 的倍数的数, 并以逗号分隔按顺序打印在一行. 输入描述:分别输入两个正整数 M.N 输出描述: ...

  7. Spring Data Neo4j解除两个节点之间的关系

    问题 需要解除两个Node之间的某种关系 思路 利用@Query注解,在其中运行Cypher的解除两个Node之间关系语句即可. Repository @Query("MATCH (:MyN ...

  8. 路径还原(求两个点之间最短距离的路径)

    思路:其实就是加一个pre数组,用来存当前顶点的前一个顶点的值. 看代码 #include<iostream> #include<cstdio> #include<cst ...

  9. 微软算法100题11 求二叉树中两节点之间的最大距离

    第11 题 求二叉树中节点的最大距离... 如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的, 我们姑且定义"距离"为两节点之间边的个数. 写一个程序, 求一棵二叉树中相 ...

最新文章

  1. 机器学习的门槛再度降低,AI小白如何用5分钟搞定建模?
  2. Conda 为什么越来越慢?
  3. 如何理解“异或(XOR)”运算在计算机科学中的重要性?(转自-阿里聚安全)...
  4. iOS之开发中一些相关的路径以及获取路径的方法
  5. 10本最火的中台与数字化转型图书,朋友圈都在传
  6. C++ set与map、unordered_map、unordered_set与哈希表
  7. 使用TensorFlow 来实现一个简单的验证码识别过程
  8. Microsoft SQL Server 2008 Management Studio Express 下载地址
  9. 苹果macfcpx视频剪辑软件:Final Cut Pro X
  10. C++调用caffe分类模型-Opencv3.4.3
  11. flume学习(四):Flume Channel Selectors使用
  12. SuperMap iClient3D for WebGL实现三维管线分析
  13. office文档管理服务器编辑,office在线编辑方案
  14. 把java代码导成pdf_Java将Excel导出成pdf文件
  15. 【MOS管知识汇总】分类、区分、寄生二极管、导通条件、开关电路、串联电阻
  16. 用AI对抗AI!教代码调戏深度学习算法生成的假视频
  17. 微信小程序开发的基础学习
  18. violate,synchronized
  19. 小春日记 - 基金初识
  20. css超过一定长度显示省略号

热门文章

  1. 中考数学不准使用计算机,不能用计算机?2021年起广州中考课目改为“4+4”
  2. Frida java/js 类型转换
  3. 美通社日历 | 会展信息、企业财报发布,节假日备忘(2月15日—2月21日)
  4. A. Cookies
  5. Chipscope无法扫描到USB Cable问题
  6. 终止合同需要什么法律条件
  7. 17-表单提交验证及MD5加密
  8. bug生命周期你们公司是如何管理bug的
  9. 51单片机配合振动传感器实现振动计数
  10. python matplotlib各种图的绘制(基础)