第12周项目4 - 利用遍历思想求解图问题(6)
来源:互联网 发布:淘宝刷单新规则 编辑:程序博客网 时间:2024/06/04 00:51
/* * Copyright (c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:main.cpp * 作 者:李良涵* 完成日期:2016年12月15 日 * 版 本 号:v1.0 * 问题描述:求不带权连通图G中从顶点u到顶点v的一条最短路径。 */ #include <stdio.h> #include <malloc.h> #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
- 第12周 项目4 - 利用遍历思想求解图问题 (6-7)
- 第12周项目4-利用遍历思想求解图问题(6-7)
- 第12周项目4-利用遍历思想求解图问题(6-7)
- 第12周项目4 - 利用遍历思想求解图问题(6)
- 【第12周 项目4 - 利用遍历思想求解图问题(6-7)】
- 第12周项目4利用遍历思想求解图问题(6-7)
- 第12周上机实践项目4 - 利用遍历思想求解图问题(1-4)
- 第12周项目4 - 利用遍历思想求解图问题(4)
- 第12周上机实践项目4 - 利用遍历思想求解图问题(5-7)
- 第12周项目4利用遍历思想求解图问题(1-5)
- 第12周 项目4 - 利用遍历思想求解图问题 (1-5)
- 第12周项目4-利用遍历思想求解图问题(1-5)
- 第12周项目4-利用遍历思想求解图问题(1-5)
- 第12周项目4 - 利用遍历思想求解图问题(1)
- 第12周项目4 - 利用遍历思想求解图问题(2)
- 第12周项目4 - 利用遍历思想求解图问题(3)
- 第12周项目4 - 利用遍历思想求解图问题(5)
- 第12周项目4 - 利用遍历思想求解图问题(7)
- 关于Excel表格导出方法--application/vnd.ms-excel
- http学习笔记(四)——HTTP报文
- 第十五周项目1—哈希表及其运算的实现
- 第十六周 验证算法--快速排序
- jquery对象的一些讨论
- 第12周项目4 - 利用遍历思想求解图问题(6)
- Listview的itemview中包含edittext控件时的解决方案
- 常见框架单例、多例与线程安全性总结
- 第十六周--直接选择排序
- 电子印章,office控件
- Android五大布局详解
- 第十六周项目1-验证算法(1)直接插入排序
- 第十五周项目4——验证希尔排序
- 第十六周-项目一 验证算法(4)