永发信息网

c#)图的深度优先搜索和广度优先搜索算法的实现

答案:2  悬赏:80  手机版
解决时间 2021-03-24 11:37
c#)图的深度优先搜索和广度优先搜索算法的实现
最佳答案
c#)图的深度优先搜索
publicvoidDFSTraverse()//深度优先遍历
{
InitVisited();//将visited标志全部置为false
DFS(items[0]);//从第一个顶点开始遍历
}
privatevoidDFS(Vertexv)//使用递归进行深度优先遍历
{
v.visited=true;//将访问标志设为true
Console.Write(v.data+"");//访问
Nodenode=v.firstEdge;
while(node!=null)//访问此顶点的所有邻接点
{ //如果邻接点未被访问,则递归访问它的边
if(!node.adjvex.visited)
{
DFS(node.adjvex);//递归
}
node=node.next;//访问下一个邻接点
}
}
privatevoidInitVisited()//初始化visited标志
{
foreach(Vertexvinitems)
{
v.visited=false;//全部置为false
}
}

c#)图的广度优先搜索
publicvoidBFSTraverse()//广度优先遍历
{
InitVisited();//将visited标志全部置为false
BFS(items[0]);//从第一个顶点开始遍历
}
privatevoidBFS(Vertexv)//使用队列进行广度优先遍历
{ //创建一个队列
Queue>queue=newQueue>();
Console.Write(v.data+"");//访问
v.visited=true;//设置访问标志
queue.Enqueue(v);//进队
while(queue.Count>0)//只要队不为空就循环
{
Vertexw=queue.Dequeue();
Nodenode=w.firstEdge;
while(node!=null)//访问此顶点的所有邻接点
{ //如果邻接点未被访问,则递归访问它的边
if(!node.adjvex.visited)
{
Console.Write(node.adjvex.data+"");//访问
node.adjvex.visited=true;//设置访问标志
queue.Enqueue(node.adjvex);//进队
}
node=node.next;//访问下一个邻接点
}
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
超市里女用洁阴湿巾男士可以用吗,超市里的洁
9D·VR体验馆怎么去啊,有知道地址的么
三星LED电视都有哪些型号?都有什么特点?
东安465发动机气门间隙是多少
刀剑第三季出了没
描绘企业发展变化大的诗句
什么秋实 成语
x^2加上51x=2分之319
你是坏坏的丫头,好像有一句,一个乖乖坏坏的
南部县大桥中学高2011级4班qq群你妈买屁狗日
为什么我看电视剧花絮的时候,发现有很多的工
单选题光纤通讯是20世纪70年代后期发展起来的
怎样把秦殇单人版中的人物道具COPY到多人版中
房地产客户到访率是什么意思,详细指什么
亨达牛肉面馆在哪里啊,我有事要去这个地方
推荐资讯
酷派大神f1,SIM卡槽边写着GSM TD/GSM 可
我是理科生,高考三百分能上什么学校?
单选题室温下,测得甲醛、乙醛、丙酮组成的液
寄生前夜3 武器熟练度怎么算的
吃消炎药,会使月经提前来吗?
佳茂缘商务广场怎么样?好不好?值不值得买?
我们周围常见的材料有哪些?
关于借条的问题
鸿达窗帘灯具批发地址有知道的么?有点事想过
石狮妇幼保健院无痛人流要多少钱
平安e行销网查工资
求中文翻译 世の中にある、人と住みかと、ま
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?