如何使用 dfs O(n) 打印图形的 MaxPath



我们想找到离第i个顶点最远的顶点,

最远的顶

点到图的当前顶点,为我们提供最大路径。

请帮助我正确处理这个问题:

vector<int> v[100];
bool mark[100];
int v1;
inline int max_path(int k)
{
    int result = -1;
    mark[k] = true;
    for(int i=0; i<v[k].size(); i++)
        if(!mark[v[k][i]])
        {
            int x = max_path(v[k][i]);
            if(x > result)
            {
                result = x;
                v1 = v[k][i];
            }
        }
    return result+1;
}

v1 必须是当前顶点 (k) 的最远顶点,结果必须是路径的长度。

您可以使用

int result[n]然后打印该的最大变量...

最新更新