【问题标题】:DFS Graph Pathfinding Giving Null Pointer ExceptionDFS 图形寻路给出空指针异常
【发布时间】:2017-04-11 01:03:05
【问题描述】:

这是一个家庭作业,我正在尝试找到起始顶点 v 和结束顶点 u 之间的路径。为我提供了一个测试类来测试该方法,不幸的是我得到了空指针异常。

我的方法有什么明显的错误吗?

谢谢!

    public Iterator<Vertex<V>> returnPath(Graph<V> g, Vertex<V> v, Vertex<V> u){
    Iterator<Vertex<V>> result;
    Iterator<Edge<V>> it;
    Edge<V> e;
    Vertex<V> w;

    v.setMarker(true);
    S.push(v);
    if(v.equals(u)){
        return S.listIterator();
    }
    it = v.incidentEdges();
    while(it.hasNext()){
        e = it.next();
        w = g.giveOpposite(v, e);
        if(!w.getMarker()){
            result = returnPath(g, w, u);
            if(result != null){
                return result;
            }
        }
    }
    S.pop();
    return null;
}

public Iterator<Vertex<V>> givePath(Graph<V> g, Vertex<V> v, Vertex<V> u){
    S.clear();
    return returnPath(g, v, u);
}

堆栈跟踪:

Exception in thread "main" java.lang.NullPointerException
at TestPath.main(TestPath.java:107)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

这个 if 语句是 107:

Iterator<Vertex<Integer>> it = fp.givePath(g,lookup.elementAt(i),lookup.elementAt(j));
               if ( !it.hasNext() ){

【问题讨论】:

  • 发布堆栈跟踪
  • @StinePike 添加!
  • 所以问题出在代码的其他部分...发布您调用此方法的代码

标签: java graph path-finding


【解决方案1】:

你可以参考我的code来实现DFS算法。

【讨论】:

    猜你喜欢
    • 2014-09-06
    • 2014-07-19
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多