图的遍历之广度优先搜索和深度优先搜索
来源:互联网 发布:餐饮管理系统数据库 编辑:程序博客网 时间:2024/06/05 17:50
图的遍历有两种常见的方式,一种是广度优先搜索,另一种是深度优先搜索。广度搜索的思想是把与之相邻的节点全部输出,并把这些节点进入队列,然后依次出队列,继续访问相邻的节点并入队列。深度搜索的思想是沿着孩子的节点继续访问子孩子,在访问的过程中依次入栈,当访问完所有的孩子后,从栈中出来并继续重复访问所有孩子。
//深度优先遍历
public void DFS(){
for(int i=0;i<number;i++){
if(flag[i]==false)
DFS_Trasver(i);
}
}
public void DFS_Trasver(int i){
flag[i]=true;
System.out.print(vertexs[i]+" ");
for(int j=0;j<number;j++){
if(flag[j]==false && edges[i][j]==1)
DFS_Trasver(j);
}
}
//广度优先遍历
public void BFS(){
//类似于队列来操作
List<Integer> list=new ArrayList<Integer>();
flag[0]=true;
System.out.print(vertexs[0]+" ");
list.add(0);
while(list.size()>0){
int i=list.get(0);
list.remove(0);
for(int j=0;j<number;j++){
if(edges[i][j]==1 && flag[j]==false){
System.out.print(vertexs[j]+" ");
flag[j]=true;
list.add(j);
}
}
}
}
- 图的遍历之广度优先搜索和深度优先搜索
- 图的遍历之 深度优先搜索和广度优先搜索
- 图的遍历之 深度优先搜索和广度优先搜索
- 图的遍历之 深度优先搜索和广度优先搜索
- 图的遍历之 深度优先搜索和广度优先搜索
- 图的遍历之广度优先搜索和深度优先搜索
- 图的遍历之 深度优先搜索和广度优先搜索
- 图的遍历之 深度优先搜索和广度优先搜索
- 图的遍历之深度优先搜索和广度优先搜索
- 图的遍历之 深度优先搜索和广度优先搜索
- 图的遍历 深度优先搜索 广度优先搜索
- dom结点的深度优先遍历和广度优先搜索
- 数据结构--图--图的数组存储表示,深度优先搜索遍历和广度优先搜索遍历
- 图的深度优先搜索和广度优先搜索模板
- 图的广度优先搜索和深度优先搜索
- 图的广度优先搜索和深度优先搜索
- 图的深度优先搜索和广度优先搜索
- 图的深度优先搜索和广度优先搜索
- 无重复全排列
- 解决Word 2007启动时弹出“无法访问您试图使用功能所在的网络位置”的问题...
- Java程序员应该了解的10个面向对象设计原则
- DB2 with as 语法
- iOS 消息推送原理及实现总结
- 图的遍历之广度优先搜索和深度优先搜索
- 12 个有效的提高编程技能的方法
- shell脚本中的shift的用法
- Mysql select in 按id排序实现方法
- Android开发中的文件的读写
- 机器学习经典算法4-logistic回归
- 杜比的音效生意
- java final 、 static 总结
- UVA1169Robotruck