Java教程

搜索

本文主要是介绍搜索,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

定义:

 

 

 

基本框架

int dfs(int u) // 保证进入dfs为有效且未访问状态,在进入dfs之后标记
{
    st[u] = true; // 标记

    for (int i = h[u]; i != -1; i = ne[i])
    {
        int j = e[i];
        if (!st[j]) dfs(j); // 如果是无效状态或访问过,不进入
    }
}

 

 

 

基础框架

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);
        }
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

这篇关于搜索的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!