Java (Node)nodes.get(j))在图形文件中的含义是什么?
请在此处找到以下文件(1)节点(2)主节点(3)图形): https://www.dropbox.com/sh/at9u2684k345uv0/dK77w58rEM 基本上,我正在实现BFS和DFS,对于图形文件中的某些代码有一些疑问:Java (Node)nodes.get(j))在图形文件中的含义是什么?,java,algorithm,graph,Java,Algorithm,Graph,请在此处找到以下文件(1)节点(2)主节点(3)图形): https://www.dropbox.com/sh/at9u2684k345uv0/dK77w58rEM 基本上,我正在实现BFS和DFS,对于图形文件中的某些代码有一些疑问: private Node getUnvisitedChildNode(Node n) { int index=nodes.indexOf(n); int j=0; while(j<size) { if(ad
private Node getUnvisitedChildNode(Node n)
{
int index=nodes.indexOf(n);
int j=0;
while(j<size)
{
if(adjMatrix[index][j]==1 && ((Node)nodes.get(j)).visited==false)
{
return (Node)nodes.get(j);
}
j++;
}
return null;
}
这里是什么意思
我还有几个问题:
在Graph类中的bfs()方法中,我有以下问题:
1) 据我所知
"Queue<Node> q=new LinkedList<Node>();"
谢谢如果您查看
图形
类,您将看到以下声明:
public ArrayList nodes = new ArrayList();
这使用了ArrayList
类型,但没有使用泛型(顺便说一下,这是个坏主意)。代码行
((Node)nodes.get(j)).visited
指以下各项:
节点的j
th元素
数组列表
。由于使用ArrayList
时不带泛型,因此将返回类型为object
的对象节点
,这才是该对象的真正含义节点中查找已访问的字段
节点
列表中查找存储在j
位置的节点
,然后读取其访问的
字段
如果作者在ArrayList
中使用泛型,所有这些都可以很容易地避免,如中所示
public ArrayList<Node> nodes = new ArrayList<Node>();
希望这会有所帮助!感谢您指出这一点。实际上,我只在Eclipse IDE中使用泛型,删除(节点)是有意义的,并提高了代码的清晰度。感谢您的输入。因此,从另一个角度考虑泛型和代码“Nodes.get(j).visted”,这意味着:1)获取nodes arraylist的第j个元素,并检查访问的布尔变量是否为false。
((Node)nodes.get(j)).visited
public ArrayList<Node> nodes = new ArrayList<Node>();
nodes.get(j).visited