如何解决DFS节点遍历序列
我正在尝试计算无向节点的遍历
使用 DFS 的图表。据我了解,我的实现是
正确,但结果不正确。
这是我的实现:
public void calculateDfsSequence(long firstNode) {
long parent = firstNode;
List<Long> parents = new ArrayList<>();
List<Long> marked = new ArrayList<>();
Stack<Long> stack = new Stack<Long>();
stack.push(firstNode);
while (!stack.isEmpty()) {
Long node = stack.pop();
if(!res.dfsNodeSequence.contains(node)) {
res.dfsNodeSequence.add(node);
long[] neighbors = selectionSort(xgraph.getNeighborsOf(node));
int pushedCnt = 0;
for (long c : neighbors) {
if (!res.dfsNodeSequence .contains(c)) {
if (pushedCnt == 0) {
parents.add(node);
pushedCnt = 1;
}
System.out.println(" pushing " + c);
stack.push(c);
}
}
if (pushedCnt == 0 && !stack.isEmpty()) {
for (int i = parents.size(); i > 0; i--) {
res.dfsNodeSequence.add(parents.get(i - 1));
}
}
}
}
}
关于如何计算 dfs 节点遍历的任何建议 真的很有帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。