第十二周项目4 利用遍历思想求解图问题(6)
来源:互联网 发布:眼镜数据 编辑:程序博客网 时间:2024/05/22 10:36
问题及代码:
/* 02.* Copyright (c)2016,烟台大学计算机与控制工程学院 03.* All rights reserved. 04.* 文件名称:zhou.cpp 05.* 作 者:吕方舟 06.* 完成日期:2016年11月27日 07.* 版 本 号:v1.0 08.* 问题描述:求不带权连通图G中从顶点u到顶点v的一条最短路径。 09.*/ 10.#include <stdio.h> 11.#include <malloc.h> 12.#include "graph.h" 13. 14.typedef struct 15.{ 16. int data; //顶点编号 17. int parent; //前一个顶点的位置 18.} QUERE; //非环形队列类型 19. 20.void ShortPath(ALGraph *G,int u,int v) 21.{ 22. //输出从顶点u到顶点v的最短逆路径 23. ArcNode *p; 24. int w,i; 25. QUERE qu[MAXV]; //非环形队列 26. int front=-1,rear=-1; //队列的头、尾指针 27. int visited[MAXV]; 28. for (i=0; i<G->n; i++) //访问标记置初值0 29. visited[i]=0; 30. rear++; //顶点u进队 31. qu[rear].data=u; 32. qu[rear].parent=-1; 33. visited[u]=1; 34. while (front!=rear) //队不空循环 35. { 36. front++; //出队顶点w 37. w=qu[front].data; 38. if (w==v) //找到v时输出路径之逆并退出 39. { 40. i=front; //通过队列输出逆路径 41. while (qu[i].parent!=-1) 42. { 43. printf("%2d ",qu[i].data); 44. i=qu[i].parent; 45. } 46. printf("%2d\n",qu[i].data); 47. break; 48. } 49. p=G->adjlist[w].firstarc; //找w的第一个邻接点 50. while (p!=NULL) 51. { 52. if (visited[p->adjvex]==0) 53. { 54. visited[p->adjvex]=1; 55. rear++; //将w的未访问过的邻接点进队 56. qu[rear].data=p->adjvex; 57. qu[rear].parent=front; 58. } 59. p=p->nextarc; //找w的下一个邻接点 60. } 61. } 62.} 63. 64.int main() 65.{ 66. ALGraph *G; 67. int A[9][9]= 68. { 69. {0,1,1,0,0,0,0,0,0}, 70. {0,0,0,1,1,0,0,0,0}, 71. {0,0,0,0,1,1,0,0,0}, 72. {0,0,0,0,0,0,1,0,0}, 73. {0,0,0,0,0,1,1,0,0}, 74. {0,0,0,0,0,0,0,1,0}, 75. {0,0,0,0,0,0,0,1,1}, 76. {0,0,0,0,0,0,0,0,1}, 77. {0,0,0,0,0,0,0,0,0} 78. }; //请画出对应的有向图 79. ArrayToList(A[0], 9, G); 80. ShortPath(G,0,7); 81. return 0; 82.}
运行结果:
知识点总结:求不带权连通图中两顶点间的一条最短路径。
学习心得:由于要用队列记录访问的顺序,找出路径,所以采用非环形队列,这里用到的是广度优先的算法。
0 0
- 第十二周项目4-利用遍历思想求解图问题
- 第十二周项目4利用遍历思想求解图问题
- 第十二周项目4--利用遍历思想求解图问题
- (第十二周项目4)利用遍历思想求解图问题
- 第十二周 项目4 -利用遍历思想求解图问题
- 第十二周项目4----利用遍历思想求解图问题
- 第十二周项目4-利用遍历思想求解图问题
- 第十二周项目4-利用遍历思想求解图问题
- 【第十二周项目4 - 利用遍历思想求解图问题】
- 第十二周项目4-利用遍历思想求解图问题
- 第十二周项目4 利用遍历思想求解图问题
- 第十二周项目4 利用遍历思想求解图问题
- 第十二周项目4-利用遍历思想求解图问题
- 第十二周 项目4 -利用遍历思想求解图问题
- 第十二周项目4-利用遍历思想求解图问题
- 【 第十二周项目4----利用遍历思想求解图问题】
- 第十二周 项目4-利用遍历思想求解图问题(6)
- 第十二周项目4-利用遍历思想求解图问题(6)
- 网站开发流程以及HTML5简介(七)
- python 描述符descriptor
- 后端技术讨论
- unity中碰撞检测相关问题
- C语言实验——Hello World!(printf练习)
- 第十二周项目4 利用遍历思想求解图问题(6)
- FNLP编译安装
- 威佐夫博弈
- (笔记)Spring MVC学习指南_转换器和格式化
- Ubuntu环境下搭建java环境(配置JDK)
- UTF-7编码
- android拍照和选择照片(单张)出现照片无法加载的问题
- 猫狗大战
- mui 开发知识 积累总结-----puls.webview