第十二周项目4-利用遍历思想求解图问题(6)
来源:互联网 发布:雄猫软件 编辑:程序博客网 时间:2024/06/15 15:40
/* *烟台大学计算机与控制工程学院 *作 者: 肖博文 *完成日期:2016年11月24日 *问题描述:假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别于示例中的图进行多次测试,通过观察输出值,掌握相关问题的处理方法。 (6)求不带权连通图G中从顶点u到顶点v的一条最短路径。 */
程序中的graph.h是图存储结构算法库中的头文件,详见图算法库。
1、最短路径
问题:求不带权连通图G中从顶点u到顶点v的一条最短路径。
测试图如下:
main.cpp
#include "graph.h"typedef struct{ int data; //顶点编号 int parent; //前一个顶点的位置} QUERE; //非环形队列类型void ShortPath(ALGraph *G,int u,int v){ //输出从顶点u到顶点v的最短逆路径 ArcNode *p; int w,i; QUERE qu[MAXV]; //非环形队列 int front=-1,rear=-1; //队列的头、尾指针 int visited[MAXV]; for (i=0; i<G->n; i++) //访问标记置初值0 visited[i]=0; rear++; //顶点u进队 qu[rear].data=u; qu[rear].parent=-1; visited[u]=1; while (front!=rear) //队不空循环 { front++; //出队顶点w w=qu[front].data; if (w==v) //找到v时输出路径之逆并退出 { i=front; //通过队列输出逆路径 while (qu[i].parent!=-1) { printf("%2d ",qu[i].data); i=qu[i].parent; } printf("%2d\n",qu[i].data); break; } p=G->adjlist[w].firstarc; //找w的第一个邻接点 while (p!=NULL) { if (visited[p->adjvex]==0) { visited[p->adjvex]=1; rear++; //将w的未访问过的邻接点进队 qu[rear].data=p->adjvex; qu[rear].parent=front; } p=p->nextarc; //找w的下一个邻接点 } }}int main(){ ALGraph *G; int A[9][9]= { {0,1,1,0,0,0,0,0,0}, {0,0,0,1,1,0,0,0,0}, {0,0,0,0,1,1,0,0,0}, {0,0,0,0,0,0,1,0,0}, {0,0,0,0,0,1,1,0,0}, {0,0,0,0,0,0,0,1,0}, {0,0,0,0,0,0,0,1,1}, {0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0} }; //请画出对应的有向图 ArrayToList(A[0], 9, G); ShortPath(G,0,7); return 0;}
运行结果:
0 0
- 第十二周项目4-利用遍历思想求解图问题
- 第十二周项目4利用遍历思想求解图问题
- 第十二周项目4--利用遍历思想求解图问题
- (第十二周项目4)利用遍历思想求解图问题
- 第十二周 项目4 -利用遍历思想求解图问题
- 第十二周项目4----利用遍历思想求解图问题
- 第十二周项目4-利用遍历思想求解图问题
- 第十二周项目4-利用遍历思想求解图问题
- 【第十二周项目4 - 利用遍历思想求解图问题】
- 第十二周项目4-利用遍历思想求解图问题
- 第十二周项目4 利用遍历思想求解图问题
- 第十二周项目4 利用遍历思想求解图问题
- 第十二周项目4-利用遍历思想求解图问题
- 第十二周 项目4 -利用遍历思想求解图问题
- 第十二周项目4-利用遍历思想求解图问题
- 【 第十二周项目4----利用遍历思想求解图问题】
- 第十二周 项目4-利用遍历思想求解图问题(6)
- 第十二周项目4-利用遍历思想求解图问题(6)
- 【Java】两个 List 遍历匹配数据的优化处理
- 截取两个指定字符内的数据
- Mac上常用命令
- Maven用法
- http://fx114.net/qa-255-158546.aspx
- 第十二周项目4-利用遍历思想求解图问题(6)
- 第十三周项目1 Prim算法的验证
- C++primer第五版第13小节String类碰到的问题
- java--分页技术(1)
- java 接受 json 数据
- Java和C#环境中制作二维码图片
- unity3D-游戏/AR/VR在线就业班 C#入门类和对象学习笔记
- Android TextView 文字居中
- insmod: short read错误