for (Enumeration e = root.preorderEnumeration(); e.hasMoreElements() && theNode == null;) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.nextElement();
}
对于上面的示例,您如何确定您在树枝中的深度?如果要遍历兄弟姐妹,如何获得它的索引?
最佳答案
您可以通过计算从getParent()
到node
的null
迭代的父母数量来获得深度。
您可以通过node
获得node.getIndex(node.getParent())
的索引。
如果对于遍历的每个节点都需要这两个信息,建议您提高效率,以编写自己的遍历器代码,这些代码受DefaultMutableTreeNode.getNextNode()
或DefaultMutableTreeNode.PreorderEnumeration
内部类的启发。在这种情况下,生成的堆栈应包含结构{ node, treeDepth, siblingIndex }