DefaultMutableTreeNode

DefaultMutableTreeNode

    for (Enumeration e = root.preorderEnumeration(); e.hasMoreElements() && theNode == null;) {
        DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.nextElement();

    }


对于上面的示例,您如何确定您在树枝中的深度?如果要遍历兄弟姐妹,如何获得它的索引?

最佳答案

您可以通过计算从getParent()nodenull迭代的父母数量来获得深度。

您可以通过node获得node.getIndex(node.getParent())的索引。

如果对于遍历的每个节点都需要这两个信息,建议您提高效率,以编写自己的遍历器代码,这些代码受DefaultMutableTreeNode.getNextNode()DefaultMutableTreeNode.PreorderEnumeration内部类的启发。在这种情况下,生成的堆栈应包含结构{ node, treeDepth, siblingIndex }

10-01 15:15