第12周项目4 - 利用遍历思想求解图问题(2)

来源:互联网 发布:validform.js ajaxurl 编辑:程序博客网 时间:2024/06/03 20:00
/* * Copyright (c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:main.cpp * 作    者:李良涵 * 完成日期:2016年12月15日 * 版 本 号:v1.0 * 假设图G采用邻接表存储,设计一个算法输出图G中从顶点u到v的一条简单路径(假设图G中从顶点u到v至少有一条简单路径)。 */  #include <stdio.h>  #include <malloc.h>  #include "graph.h"  int visited[MAXV];     //定义存放节点的访问标志的全局数组  void FindAPath(ALGraph *G,int u,int v,int path[],int d)  {      //d表示path中的路径长度,初始为-1      int w,i;      ArcNode *p;      visited[u]=1;      d++;      path[d]=u;  //路径长度d增1,顶点u加入到路径中      if (u==v)   //找到一条路径后输出并返回      {          printf("一条简单路径为:");          for (i=0; i<=d; i++)              printf("%d ",path[i]);          printf("\n");          return;         //找到一条路径后返回      }      p=G->adjlist[u].firstarc;  //p指向顶点u的第一个相邻点      while (p!=NULL)      {          w=p->adjvex;    //相邻点的编号为w          if (visited[w]==0)              FindAPath(G,w,v,path,d);          p=p->nextarc;   //p指向顶点u的下一个相邻点      }  }    void APath(ALGraph *G,int u,int v)  {      int i;      int path[MAXV];      for (i=0; i<G->n; i++)          visited[i]=0; //访问标志数组初始化      FindAPath(G,u,v,path,-1);  //d初值为-1,调用时d++,即变成了0  }    int main()  {        ALGraph *G;      int A[5][5]=      {          {0,0,0,0,0},          {0,0,1,0,0},          {0,0,0,1,1},          {0,0,0,0,0},          {1,0,0,1,0},      };  //请画出对应的有向图      ArrayToList(A[0], 5, G);      APath(G, 1, 0);      APath(G, 4, 1);      return 0;  }  

运行结果:


心得体会:

遍历输出简单路径

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 我孩子长得老慢怎么办 老公嫌你烦了怎么办 2岁宝宝吃饭不嚼怎么办 2岁宝宝挑食厌食怎么办 孩子不爱和家长交流怎么办 孩子发烧在医院查不出病因怎么办 宝宝乳牙长歪了怎么办 两岁宝宝不爱吃水果怎么办 两岁宝宝不吃水果怎么办 一岁的宝宝上火了怎么办 吃水果嘴唇肿了怎么办 二岁宝宝不爱吃饭怎么办 小婴儿便秘但不爱喝水怎么办 宝宝只吃水果不吃饭怎么办 一岁宝宝不喜欢吃水果怎么办 1岁宝宝不吃水果怎么办 一岁半宝宝吃水果拉肚子怎么办 大人发烧了怎么办如何退烧 怀孕后不爱吃水果怎么办 不敢吃水果了怕虫怎么办 宝宝发烧38度不出汗怎么办 1岁宝宝喜欢含饭怎么办 3岁宝宝喜欢含饭怎么办 孩子咳嗽发烧怎么办最有效 孩子咳嗽打哈切流鼻涕发烧怎么办 孩子香蕉吃多了怎么办 80多岁老人发烧怎么办 小孩香蕉吃多了怎么办 7个月宝宝缺钙怎么办 宝宝脖子被汗淹到红了脱皮怎么办? 小儿出汗多咳嗽怎么办吃什么 牛高烧不退怎么办最好 猪体温低不吃食怎么办 小孩发烧咳嗽怎么办吃什么药 大晚上发烧39度怎么办 胃受凉了老打嗝怎么办 大人发低烧怎么办如何退烧 吃了退热药不退热怎么办 猪持续高烧不退怎么办 猪感冒了不吃食怎么办 6岁儿童发烧38度怎么办