正文描述:《求图的简单路径和回路》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、求图的简单路径和回路下面是用邻接表存储无向图,然后输出图中指定顶点间的指定长度的简单路径,简单路径就是路径中的顶点不重复,还有一个就是求出图中经过某顶点的回路,都是对图的遍历算法的应用,主要是深度优先的遍历,加上简单的回溯。下面是代码1.//文件"graph.h" 2. 3.#include 4.#include 5.#include 6.using namespace std; 7. 8.bool visited[20]; 9.int path[20]; 10. 11.struct ArcNode 1
2、2.{ 13. int adjvex; 14. ArcNode *nextarc; 15.}; 16. 17.struct VexNode 18.{ 19. string data; 20. ArcNode *firstarc; 21.}; 22. 23.class NDGraph 24.{ 25.private: 26. VexNode vertices[20]; 27. int vexnum; 28. int arcnum; 29.public: 30. NDGraph() 31. {
3、 32. vexnum=0; 33. arcnum=0; 34. } 35. 36. int GetVexNum() 1. { 2. return vexnum; 3. } 4. 5. int Locate_Vex(string v) 6. { 7. for(int i=0;i
4、eturn -1; 11. } 12. 13. void Create_NDGraph() 14. { 15. //构造无向图 16. string v1,v2; 17. int i,j,k; 18. cout<<"输入顶点数和边数:"; 19. cin>>vexnum>>arcnum; 20. while(vexnum>20) 21. { 22. cout<<"请输入少于20个顶点(重新输入顶点数和边数):"; 23
5、. cin>>vexnum>>arcnum; 24. } 25. 26. cout<<"输入顶点名称:"; 27. for(i=0;i>vertices[i].data; 30. vertices[i].firstarc=NULL; 31. } 32. 33. for(k=0;k
6、 cout<<"输入每条边对应的两个顶点:"; 36. cin>>v1>>v2; 37. 38. i=Locate_Vex(v1); 39. j=Locate_Vex(v2); 40. 41. while(i == -1
7、
8、 j == -1) 42. { 43. cout<<"顶点中有不符合要求的,请重新输入:"; 44. cin>>v1>>v2; 1.
9、 i=Locate_Vex(v1); 2. j=Locate_Vex(v2); 3. } 4. 5. ArcNode *p=new ArcNode; 6. p->adjvex=j; 7. p->nextarc=vertices[i].firstarc; 8. vertices[i].firstarc=p; 9
显示全部收起
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。