第十二周项目4 利用遍历思想求解图问题(7)
来源:互联网 发布:linux nat配置转发 编辑:程序博客网 时间:2024/05/30 23:40
问题及代码:
/* 02.* Copyright (c)2016,烟台大学计算机与控制工程学院 03.* All rights reserved. 04.* 文件名称:zhou.cpp 05.* 作 者:吕方舟 06.* 完成日期:2016年11月27日 07.* 版 本 号:v1.0 08.* 问题描述:求不带权连通图G中,距离顶点v最远的顶点k 09.*/ 10.#include <stdio.h> 11.#include <malloc.h> 12.#include "graph.h" 13. 14.int Maxdist(ALGraph *G,int v) 15.{ 16. ArcNode *p; 17. int i,j,k; 18. int Qu[MAXV]; //环形队列 19. int visited[MAXV]; //访问标记数组 20. int front=0,rear=0; //队列的头、尾指针 21. for (i=0; i<G->n; i++) //初始化访问标志数组 22. visited[i]=0; 23. rear++; 24. Qu[rear]=v; //顶点v进队 25. visited[v]=1; //标记v已访问 26. while (rear!=front) 27. { 28. front=(front+1)%MAXV; 29. k=Qu[front]; //顶点k出队 30. p=G->adjlist[k].firstarc; //找第一个邻接点 31. while (p!=NULL) //所有未访问过的相邻点进队 32. { 33. j=p->adjvex; //邻接点为顶点j 34. if (visited[j]==0) //若j未访问过 35. { 36. visited[j]=1; 37. rear=(rear+1)%MAXV; 38. Qu[rear]=j; //进队 39. } 40. p=p->nextarc; //找下一个邻接点 41. } 42. } 43. return k; 44.} 45. 46.int main() 47.{ 48. ALGraph *G; 49. int A[9][9]= 50. { 51. {0,1,1,0,0,0,0,0,0}, 52. {0,0,0,1,1,0,0,0,0}, 53. {0,0,0,0,1,1,0,0,0}, 54. {0,0,0,0,0,0,1,0,0}, 55. {0,0,0,0,0,1,1,0,0}, 56. {0,0,0,0,0,0,0,1,0}, 57. {0,0,0,0,0,0,0,1,1}, 58. {0,0,0,0,0,0,0,0,1}, 59. {0,0,0,0,0,0,0,0,0} 60. }; //请画出对应的有向图 61. ArrayToList(A[0], 9, G); 62. printf("离顶点0最远的顶点:%d",Maxdist(G,0)); 63. return 0; 64.}
运行结果:
知识点总结:求不带权连通图中距离顶点最远的顶点k。
学习心得:这里采用广度优先的遍历算法,由于只需求一个顶点,不需求路径,所以采用的队列可以是环形队列。
0 0
- 第十二周项目4-利用遍历思想求解图问题
- 第十二周项目4利用遍历思想求解图问题
- 第十二周项目4--利用遍历思想求解图问题
- (第十二周项目4)利用遍历思想求解图问题
- 第十二周 项目4 -利用遍历思想求解图问题
- 第十二周项目4----利用遍历思想求解图问题
- 第十二周项目4-利用遍历思想求解图问题
- 第十二周项目4-利用遍历思想求解图问题
- 【第十二周项目4 - 利用遍历思想求解图问题】
- 第十二周项目4-利用遍历思想求解图问题
- 第十二周项目4 利用遍历思想求解图问题
- 第十二周项目4 利用遍历思想求解图问题
- 第十二周项目4-利用遍历思想求解图问题
- 第十二周 项目4 -利用遍历思想求解图问题
- 第十二周项目4-利用遍历思想求解图问题
- 【 第十二周项目4----利用遍历思想求解图问题】
- 第十二周 项目4-利用遍历思想求解图问题(7)
- 第十二周项目4-利用遍历思想求解图问题(7)
- 苏嵌22 16.11.26
- 22. MySQL 函数
- java 转换int类型数值到对应的金额大写
- 极大似然估计
- 硬盘的类型与维护
- 第十二周项目4 利用遍历思想求解图问题(7)
- 译码器模块
- C语言实验——输出字符串
- initializationError(org.junit.runner.manipulation.Filter), No tests found matching型异常
- LeetCode解题报告 241. Different Ways to Add Parentheses [medium]
- 时间日期相关
- 用PL/SQL连接虚拟机中的oracle数据库
- ROS机器人操作系统
- 大理石在哪