对于以下问题:
在给定N个站点,源站点,目标站点的情况下,数据结构表示每2个站点之间的所有可能路径(路径是无向的)以及从一个站点到另一站点的每个路径的长度–查找从源站点到最长路径目的地站
我写了下面的伪代码:
Vertex
String key
boolean visited
LinkedList<Edge>nextEdges
Edge
Vertext nextVertex
int length
tempSum=0
stack
maxSum=0
maxPath
maxPathByDFS(src,dst)
1 stack.push(src)
2 src.visited=true
3 if (!src.nextEdges.isEmpty)
4 for (currEdge∶src.nextEdges)
5 if (currEdge.nextVertex==dst)
6 tempSum+=currEdge.lenght
7 stack.push(dst)
8 if(tempSum>maxSum)
9 maxSum=tempSum
10 stack.toArray(maxPath)
11 stack.pop
12 tempSum-=currEdge.lenght
13 else if (!currEdge.nextVertex.visited)
14 tempSum+=currEdge.lenght
15 maxPathByDFS(currEdge.nextVertex,dst)
16 tempSum-=currEdge.lenght
17 stack.pop
18 src.visited=false
19 return
能否请您帮我找到解决方案的运行时复杂性?