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

C++ 如何使用dfs O(n)打印图形的MaxPath?,c++,algorithm,graph,vector,depth-first-search,C++,Algorithm,Graph,Vector,Depth First Search,我们要找到第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]]) {

我们要找到第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;
}
向量v[100]; 布尔马克[100]; int v1; 内联整数最大路径(整数k) { int结果=-1; 标记[k]=true; for(int i=0;i结果) { 结果=x; v1=v[k][i]; } } 返回结果+1; }
v1必须是当前顶点(k)的最远顶点,结果必须是路径的长度。

您可以使用
int result[n]
然后打印该顶点的最大值…

此代码有什么问题对于StackOverflow来说,这不是一个合适的问题。最简单的方法是找到图中每个节点的最短路径。“最远顶点”和“最大路径”对您来说意味着什么?如果每个其他顶点有多条路径,你想要哪条路径,最长的还是最短的?最长路径如果以a开头,那么从a结尾到现在的第二条是图形的最大路径。你是说这个吗?