0

さて、私は夢中になるかもしれませんが、これまでこのエラーに遭遇したことはありません。

これはコンパイルされません:

私が得るエラーは次のとおりです:「訪問したシンボル変数が見つかりません」

編集済み

関数全体は次のとおりです。

public void depthFirstTraverse(Node startNode) {
    Stack<Node> myStack = new Stack<Node>();
    myStack.push(startNode);

    while (!myStack.empty()) {
        Node top = myStack.pop();
        top.visited = true;
        System.out.println(top.item);
        for (int i = 0; i < top.getAdjList().size() ; i++) {
            //Node temp = (Node)top.getAdjList().get(i);
            if (!(Node)top.getAdjList().get(i).visited) {
                myStack.push((Node)top.getAdjList().get(i));
            }
        }
        top.visited = false;
    }

}

この部分は機能しません

if (!top.getAdjList().get(i).visited) {  // this line gives me an error

これは行います:

for (int i = 0; i < top.getAdjList().size() ; i++) {
            Node temp = (Node)top.getAdjList().get(i);
            if (temp.visited) {
                myStack.push(temp);
            }
        }

なんでそうなの?

4

1 に答える 1

2

if (!(Node)top.getAdjList().get(i).visited)booleanaを aにキャストしようとしているようですNode

おそらく代わりにこれを試してください:

if (!((Node)top.getAdjList().get(i)).visited)キャストを行い、visitedプロパティをチェックします

于 2012-09-13T02:05:58.783 に答える