永发信息网

图的DFS遍历 先任意创建一个图; 图的DFS的递归和非递归算法的实现 用邻接矩阵、邻接表两种结构存储实现

答案:1  悬赏:30  手机版
解决时间 2021-11-25 18:46
图的DFS遍历 先任意创建一个图; 图的DFS的递归和非递归算法的实现 用邻接矩阵、邻接表两种结构存储实现
最佳答案
package com.graphic;

public class DFS_Graph {


public static void main(String[] args) {
int matrix[][] = { { 0, 1, 0, 0, 1 }, { 1, 0, 1, 1, 1 },
{ 0, 1, 0, 1, 0 }, { 0, 1, 1, 0, 1 }, { 1, 1, 0, 1, 0 } };
DFS_Graph graph = new DFS_Graph();
graph.init(matrix);

}

int time = 0;
GNode array[];
   
    
public void init(int matrix[][]) {
array = new GNode[matrix.length];
for (int i = 0; i < array.length; i++)// 初始化
{
array[i] = new GNode(i);
}
for (int i = 0; i < array.length; i++) {
if (array[i].color.equals("w"))
{
DFS(array[i], matrix, array);

for (int j = 0; j < array.length; j++)
{
if(j>0)
{
System.out.println(array[j].id + " color=" + array[j].color
+ " d_time=" + array[j].d_time + " f_time="
+ array[j].f_time+" par= "+array[j].par.id);
}
else
{
System.out.println(array[j].id + " color=" + array[j].color
+ " d_time=" + array[j].d_time + " f_time="
+ array[j].f_time);
}
}
System.out.println();
System.out.println();
}
}
// DFS(array[0], matrix, array);
}

public void DFS(GNode u, int matrix[][], GNode array[]) {
u.color = "g";
time++;
u.d_time = time;
for (int i = 0; i < matrix.length; i++) {
if (matrix[u.id][i] == 1 && array[i].color.equals("w")) {
array[i].par = u;
DFS(array[i], matrix, array);
}
}
u.color = "b";
time++;
u.f_time = time;
}
}

class GNode {
String color;// color=black 没有访问,//color=gray 正在访问//color=black已经访问结束了
int id;
int d_time;
int f_time;
GNode par;

public GNode() {
}

public GNode(int id) {
this.color = "w";
this.d_time = 0;
this.f_time = 0;
this.par = null;
this.id = id;
}

}别人写的代码你可能不容易理解的。给你个参考吧:算法导论第二版22章,图的基本算法,里面有关于图的DFS和BFS算法。代码是用伪代码写的,但是讲解很详细,慢慢看,就当做学习的过程吧。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
西藏宾馆在什么地方啊,我要过去处理事情
怎么样才能钻回妈妈的肚子里再重新怀孕再重新
山东哪儿离烟台最近
沙特离北京多少公里
QQ群怎样开启qq消息提醒框
烧凉粉怎么做好吃,肉末烧凉粉的家常做法
衡南农商银行泉溪支行地址在什么地方,想过去
不粘胶怎么去除
是买佳能5d4好还是6d2好
为什么QQ在线一天还是0.2?
银饰接触护肤品会怎样
网线走线时应该放在墙中还是地下
东东瓷砖批发零售地址在什么地方,我要处理点
鑫达瓷砖批发地址在哪,我要去那里办事,
睁眼撞鬼共多少章
推荐资讯
3.6米挑高做半复式装潢
中国邮政储蓄银行(方太乡)地址在哪,我要去那
太阁5里,丰臣秀吉能自然死亡吗
老烟斗鬼故事蛇五百年化为蛟蛟一千年化为龙说
实时荧光定量PCR可以用来精确测定DNA浓度吗
第一次工地例会应该讲些什么内容?
男人如何提高情商?
K里,伏见为什么要背叛赤组加入青组?
舞乐艺术学校地址有知道的么?有点事想过去!
求算法大师帮忙
在单亲家庭中的孩子会有什么影响
信用卡拖人办下来以后自己能去激活码
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?