公告

👇 微信 👇

图片

欢迎私信交流

Skip to content

3-树与图的遍历 ​

算法思想 ​

算法模板 ​

深度优先遍历 ​

cpp
int dfs(int u)
{
    st[u] = true; // st[u] 表示点u已经被遍历过

    for (int i = h[u]; i != -1; i = ne[i])
    {
        int j = e[i];
        if (!st[j]) dfs(j);
    }
}

宽度优先遍历 ​

cpp
queue<int> q;
st[1] = true; // 表示点1已经被遍历过
q.push(1);

while (q.size())
{
    int t = q.front();
    q.pop();

    for (int i = h[t]; i != -1; i = ne[i])
    {
        int j = e[i];
        if (!st[j])
        {
            st[j] = true; // 表示点j已经被遍历过
            q.push(j);
        }
    }
}