java中的深度优先搜索-无法将节点转换为int
我需要执行深度优先搜索,但当我尝试实现这段代码时,我得到一个错误“无法将节点转换为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
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);