深度优先遍历和广度优先遍历

本文详细介绍了深度优先遍历(DFS)和广度优先遍历(BFS)两种图遍历方法。DFS使用递归实现,通过visited数组跟踪已访问状态;BFS则依赖队列,遵循先进先出原则遍历邻接点。对于非连通图,可以结合DFS或BFS遍历所有未访问节点。此外,文章还讨论了有向图的强连通图概念。
摘要由CSDN通过智能技术生成

一.深度优先遍历(DFS)

  • 首先创建一个visited[]数组用来标记是否被访问过,未被访问过赋值为0
  • 将图、一个顶点和visited[]数组传入函数,进行递归遍历
void DFS(Graph*g,int v,bool visited[])//v为点v的位置
{
   
    print("%c-->",getv(v));//从v的位置得到v,并将其输出
    visited[v]=1;//表示已经被访问过了
    int w=getfirstneighbor(g,getv(v));//得到第一个邻接点
    while(w!=-1)
    {
   
        if(visited[w]!=1)//未被访问
        {
   
            
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值