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

    }

对于上面的那个例子,你怎么知道你在树枝里有多深?如果你正在迭代兄弟姐妹,你如何获得它的索引?

4

1 回答 1

1

getParent()您可以通过计算从node直到结果为的父级迭代的数量来获得深度null

你可以得到node的索引感谢node.getIndex(node.getParent())

如果您需要遍历每个节点的这两种信息,我建议您编写自己的遍历器代码以提高效率,无论是从类DefaultMutableTreeNode.getNextNode()还是DefaultMutableTreeNode.PreorderEnumeration内部类中获得灵感。在后一种情况下,生成的堆栈应该包含一个结构{ node, treeDepth, siblingIndex }

于 2012-03-04T21:35:30.857 回答