C++ 如何使用dfs O(n)打印图形的MaxPath?
我们要找到第i个顶点的最远顶点 图的当前顶点的最远顶点,为我们提供了最大路径 请帮我把这个弄对: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]]) {
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结尾到现在的第二条是图形的最大路径。你是说这个吗?