设为首页 加入收藏

TOP

图的概念、存储及遍历(二)
2019-05-23 15:03:56 】 浏览:84
Tags:概念 存储
们想要对顶点进行操作,必然要对图进行遍历。图的遍历有两种,都是我们耳熟能详的:深度优先遍历、广度优先遍历,具体的思想和搜索一模一样,这里不再重复。

深度优先遍历:

//邻接表
void dfs(int dep)
{
    blablabla......
    int i;
    for(i=first[dep];i;i=e[i].last)
        if(b[a[i].to]==0)
        {
            b[a[i].to]=1;
            dfs(a[i].to);
            b[a[i].to]=0;   
        }
}

广度优先遍历:

//邻接表
void bfs()
{
    int head=0,tail=1;
    q[tail]=x;//x表示我们最开始的起点
    b[x]=1;
    while(head<tail)
    {
        head++;
        int i,t=q[head];
        for(i=first[t];i;i=a[i].last)
            if(b[a[i].to]==0)
            {
                blablabla......
                b[a[i].to]=1;
                q[tail++]=a[i].to;  
            }   
    } 
}

By wxn

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++友元 下一篇P1361 小M的作物 (最大流)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目