江西理工大学
数据结构
实验报告
实验名称
遍历图
日期2014-12-01专业班计算机(中加) 131班地点信息学院621实验人王鹏伟
学号
同一个小组的人
单独完成
1520133713
//一、实验目的
1、按照老师要求实现图的深度和广度扫描; 2、学习图的深度和广度扫描规则。 二、实验要求1、任意给图;
2 .使用该算法输出该图的深度和广度的扫描结果。 三.实验内容
1、利用本14.1 definitions及课堂老师PPT讲述的知识解决扫描问题并输出结果。
四.实验过程和结果
部分实验代码:
//通过广度优先遍历实现BFS
私密void bfs ()//todo auto-generatedmethodstubfor (inti=0; i vexnum; I ) {
可视[ I ]=false; }
queue q=新链接列表(; for(intI=0; i vexnum; I ) {
if (! 可视[ I ] (可视[ I ]=true;
visit(I; q .添加(I );
while (! q.isEmpty () (intj=) integer (q.remove ) ).intValue );
()所有遍历结束后判断为不需要循环
if(temp.size(==vexnum ) q.removeall ) q; 返回; }for(intk=this.firstadjvex ) j; k=0; k=this
. nextadjvex(j,k ) ) if (! 可视[ k ]
q.add(k;
可视[ k ]=true;
visit(k;
}}}}}
深度优先遍历的实现DFS公共语音DFS () for(intI=0; i vexnum; I ) {
可视[ I ]=false; }
queue q=新链接列表(; for(intI=0; i vexnum; I ) if (! 可视[ I ] (可视[ I ]=true; visit(I; q .添加(I );
while (! q.isEmpty () (intj=) integer (q.remove ) ).intValue ); //所有遍历结束后判断为不需要循环的if(temp.size(==vexnum ) q.removeall ) q ); 返回; }for(intk=this.firstadjvex ) j; k=0; k=this
. nextadjvex(j,k ) ) if (! 可视[ k ]
q.add(k;
可视[ k ]=true;
visit(k;
}}}}}
有关进程的详细信息,请调试源代码。
实验结果:
广度优先遍历: