数据结构——第六讲、图(上)(2)
来源:互联网 发布:php短信接口怎么写 编辑:程序博客网 时间:2024/06/05 10:03
6.2 图的遍历
图的遍历有两种方式:DFS(深度优先搜索)和BFS(广度优先搜索)。
DFS:就是从某一个节点开始,依次访问它的邻接点,每个邻接点都递归的调用DFS方法。
void DFS(Vertex V){ V.Visited = true; //对于邻接表来说,访问V的每一个邻接点就是找到V对应的链表依次访问 //对于邻接矩阵来说,需要访问V对应的那一行里所有的非零(或无穷)项 for(V的每一个邻接点W){ if(W没有被访问过){ DFS(W); } }}
BFS:广度优先搜索,类似于树的层序遍历,用队列实现。
void BFS(Vertex V){ V.Visited = true; Queue Q; AddQ(Q,V); while(!IsEmpty(Q)){ V = Delete(Q); for(V的每一个邻接点W){ if(W没有被访问){ V.Visited = true; AddQ(Q,W); } } }}
两种遍历方法各有优劣,不同的情况适用不同的方法。
有的时候图并不是联通的,这时候要遍历,需要把图中的每个没有被访问的节点都调用一次BFS或DFS,就可以把每个节点都访问到。(两种遍历方法是检索数据的方式,并不是说找不到这些数据了,而是按照某种特定方法来遍历,达到某些目的)
阅读全文
0 0
- 数据结构——第六讲、图(上)(2)
- 数据结构——第六讲、图(上)(1)
- 陈越《数据结构》第六讲 图(上)
- 数据结构——第三讲、树(上)(2)
- 数据结构——第三讲、树(上)(1)
- 数据结构——第三讲、树(上)(3)
- 动态规划第六讲——leetcode上的动态规划汇总(下)
- 织梦仿站系列教程第六讲——通用头部(二)会员登陆框(上)
- 动态规划第六讲——leetcode上的动态规划汇总(下)
- 织梦仿站系列教程第六讲——通用头部(二)会员登陆框(上)
- 陈越《数据结构》第三讲 树(上)
- 织梦(dedecms)仿站教程第六讲——通用头部(二)会员登陆框(上)
- 孙鑫VC++学习笔记(第六讲 ——菜单)
- 数据结构——第七讲、图(中)(1)
- 数据结构——第八讲、图(下)(1)
- 数据结构——第四讲、树(中)(2)
- 数据结构——第五讲、树(下)(2)
- 数据结构——第一讲、基本概念(2)
- scikit-learn Adaboost类库使用小结
- ML in action代码学习/CH02 KNN/约会网站配对效果改进
- hbase 表重命名
- Bentley AutoPIPE
- Android 设置状态栏颜色&&沉浸式状态栏
- 数据结构——第六讲、图(上)(2)
- request.getParameter() 和request.getAttribute() 区别
- Redis与数据库数据同步解决方案
- jq学习笔记1
- YII2 更改入口文件
- android opencv 简单的人脸识别
- C#一般处理程序+html实现短信发送
- c++内存泄露(一):理解内存泄漏及内存泄漏常见情况
- 判断单链表是否成环算法