java中的深度优先搜索-无法将节点转换为int

java中的深度优先搜索-无法将节点转换为int,java,depth-first-search,Java,Depth First Search,我需要执行深度优先搜索,但当我尝试实现这段代码时,我得到一个错误“无法将节点转换为int”。我知道类型不匹配,但我不确定如何更正它以使其工作。下面是我的方法代码: public void DFS(){ int node = g.node; System.out.print("Depth First Traversal: "); boolean[] visited = new boolean[node]; Stack<Integer> stack = n

我需要执行深度优先搜索,但当我尝试实现这段代码时,我得到一个错误“无法将节点转换为int”。我知道类型不匹配,但我不确定如何更正它以使其工作。下面是我的方法代码:

public void DFS(){
    int node = g.node;
    System.out.print("Depth First Traversal: ");
    boolean[] visited = new boolean[node];
    Stack<Integer> stack = new Stack<Integer>();

    for(int startIndex=0; startIndex<node; startIndex++){
        if(visited[startIndex]==false) {
            stack.push(startIndex);
            visited[startIndex] = true;
            while (stack.isEmpty() == false) {
                int nodeIndex = stack.pop();
                System.out.print(nodeIndex + " ");
                ArrayList<Node> nodeList = g.nodeList;
                for (int i = 0; i < nodeList.size(); i++) {
                    int dest = nodeList.get(i);
                    if (visited[dest] == false) {
                        stack.push(dest);
                        visited[dest] = true;
                    }
                }
            }
        }
    }
    System.out.println();
}
你有这个吗

ArrayList<Node> nodeList = g.nodeList;
// ...
int dest = nodeList.get(i);
ArrayList节点列表=g.nodeList;
// ...
int dest=nodeList.get(i);
显然,nodeList是
节点的列表
,因此不能将其中一个
节点
保存到
dest
,该节点是数字。如果您想要
节点中的某个数字
,则必须编写类似
int dest=nodeList.get(i).getIndex()
(仅举一个例子,名称取决于
节点
具有的属性)

这样的代码

ArrayList<Node> nodeList = g.nodeList;
// ...
int dest = nodeList.get(i);
ArrayList节点列表=g.nodeList;
// ...
int dest=nodeList.get(i);

显然,nodeList是
节点的列表
,因此不能将其中一个
节点
保存到
dest
,该节点是数字。如果您想要
节点中的某个数字
,则必须编写类似
int dest=nodeList.get(i).getIndex()
(仅举一个例子,名称取决于
节点
的属性)

请首先显示
节点
边缘
的定义,请不要这样做-这会伤害我访问的[dest]==false-您正在将真/假与假进行比较以获得真/假-这对您有意义吗?请显示
节点
边缘
的定义首先,请不要这样做-这会伤害我访问的[dest]==false-您正在将true/false与false进行比较以获得true/false-这对您有意义吗?如果您想用正确的方法修改答案,他们会使用
节点的定义更新问题。如果您想用正确的方法修改答案,他们会使用
节点的定义更新问题。
public class Edge {

    String label;
    Node tail;
    Node head;

    public Edge(Node tailNode, Node headNode, String theLabel) {
        setLabel(theLabel);
        setTail(tailNode);
        setHead(headNode);
    }

    public String getLabel() {
        return label;
    }

    public Node getTail() {
        return tail;
    }

    public Node getHead() {
        return head;
    }

    public void setLabel(String s) {
        label = s;
    }

    public void setTail(Node n) {
        tail = n;
    }

    public void setHead(Node n) {
        head = n;
    }
}
ArrayList<Node> nodeList = g.nodeList;
// ...
int dest = nodeList.get(i);