/*烟台大学计算机与控制工程学院
时间2015年12月14日
作者:孙潇
问题描述:假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别于示例中的图进行多次测试,通过观察输出值,掌握相关问题的处理方法。 求不带权连通图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++)      //访问标记置初值0visited[i]=0;rear++;                     //顶点u进队qu[rear].data=u;qu[rear].parent=-1;visited[u]=1;while (front!=rear)         //队不空循环{front++;                //出队顶点ww=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;
}

附:测试用图结构

运行结果:

第十二周项目四----利用遍历思想求解图问题之6最短路径相关推荐

  1. 第十二周项目四----利用遍历思想求解图问题之7最远顶点

    /*烟台大学计算机与控制工程学院 时间2015年12月14日 作者:孙潇 问题描述:假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别于示例中的图进行多次测试,通过观察输出值,掌握相关问题 ...

  2. 第十二周项目四----利用遍历思想求解图问题之输出一些简单回路

    /*烟台大学计算机与控制工程学院 时间2015年12月14日 作者:孙潇 问题描述:假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别于示例中的图进行多次测试,通过观察输出值,掌握相关问题 ...

  3. 第十二周项目四----利用遍历思想求解图问题之输出简单路径

    /*烟台大学计算机与控制工程学院 时间2015年12月14日 作者:孙潇 问题描述:假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别于示例中的图进行多次测试,通过观察输出值,掌握相关问题 ...

  4. 第十二周项目四----利用遍历思想求解图问题之输出所有路径

    /*烟台大学计算机与控制工程学院 时间2015年12月14日 作者:孙潇 问题描述:假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别于示例中的图进行多次测试,通过观察输出值,掌握相关问题 ...

  5. 第十二周项目4-利用遍历思想求解图问题(6-7)

    /* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:第十二周项目4-利用遍历思想求解图问题(6-7) 作 者:佟兴锋 完成日期: ...

  6. 2015年大二上-数据结构-图-1-(4)-利用遍历思想求解图问题(2)

    1.最短路径 问题:求不带权连通图G中从顶点u到顶点v的一条最短路径. 附:测试用图结构 2.最远顶点 问题:求不带权连通图G中,距离顶点v最远的顶点k 附:测试用图结构 /* *Copyright ...

  7. 第十二周项目五-----迷宫问题之图深度优先遍历解法

     烟台大学计算机与控制工程学院 作者:孙潇 时间:2015年12月15日 问题描述:[项目 - 迷宫问题之图深度优先遍历解法]   设计一个程序,采用深度优先遍历算法的思路,解决迷宫问题.   ( ...

  8. 第十二周项目5-迷宫问题之图深度优先遍历解法

    问题: /* * Copyright(c)2015,烟台大学计算机学院 * All right reserved. * 文件名称:项目5.cbp * 作者:李艺 * 完成日期:2015年11月20日 ...

  9. 第十二周项目二----操作用邻接表存储的图

    /*烟台大学计算机与控制工程学院 时间2015年12月14日 作者:孙潇 问题描述:假设图G采用邻接表存储,分别设计实现以下要求的算法: (1)输出出图G中每个顶点的出度: (2)求出图G中出度最大的 ...

最新文章

  1. Linux初学 - SSH
  2. linux怎么离线安装gcc文件夹,CentOS下离线安装gcc环境,图文详细,方法全面
  3. 无插件Vim编程技巧
  4. redis实现令牌桶算法思路
  5. PHP访问MySQL数据库
  6. C++右值引用和完美转发
  7. Springboot测试类的编写
  8. jquery表单数据反序列化为字典
  9. 转document.documentElement和document.body的区别
  10. 网络新潮文化:Wiki不完全手册
  11. python2编码_Python2字符编码
  12. qt执行命令行失败_QT缺少 qtcore4.dll,debug下运行不成功
  13. dede 验证码不显示 vdimgck.php,织梦(dedecms)后台登录验证码不显示或不正常的解决方法...
  14. 一周水题集锦 2017 9.4
  15. Boxee智能电视机顶盒在美国CES亮相
  16. cam350怎么看顶层_CAM350软件怎么查看gerber文件 cam350导出gerber教程
  17. mac上如何官网下载安装virtualbox
  18. 链表中添加一个节点和删除一个节点
  19. allure定制测试报告logo
  20. JavaScript之减速运动的实现

热门文章

  1. hdu 5755 Gambler Bo 高斯消元
  2. 张建宁:“海阔天空”的物联网必须脚踏实地
  3. c atol()函数_atol()函数以及C ++中的示例
  4. Therefore, hence, so, then, thus
  5. 零基础全天自学PHP,7个月后我找到了工作
  6. Vue3+Naive踩坑
  7. 这次把怎么做好一个PPT讲清-画图篇
  8. JavaScript 获取当前周数
  9. 计算机一级word之sum函数,Word2013文档表格中利用SUM函数对数据进行计算的方法
  10. 华为机试题 2014