Java (Node)nodes.get(j))在图形文件中的含义是什么?

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

请在此处找到以下文件(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(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