请在此处找到以下文件 (1) Node 2)Main 3) Graph):
https://www.dropbox.com/sh/at9u2684k345uv0/dK77w58rEM
基本上我正在实现 BFS 和 DFS,并且对 Graph File 中的一些代码有一些疑问:
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;
}
谁能告诉我是什么
(Node)nodes.get(j))
是这里的意思吗?
我还有几个问题:
在 Graph 类的 bfs() 方法中,我有以下问题:
1)据我了解
"Queue<Node> q=new LinkedList<Node>();"
表示 LinkList 实现了一个队列。
那么,为什么在这种情况下需要 LinkedList,我们不能只通过“Queue q = new Queue();”来实现吗??
2)虽然我已经多次阅读“this”关键字的用法,但谁能解释一下原因
q.add(this.rootNode) 被使用,为什么不只是 q.add(rootNode) ?
3)以下行表示什么?
while((child=getUnvisitedChildNode(n))!=null)
谢谢