我已经告诉java类TreeMap的使用RB树的实现。如果是这样的话,一个人如何做一个TreeMap中序,序和后序树走?

或者这不可能?

有帮助吗?

解决方案

您将无法在收藏集库中实现树状图中做到这一点。这里有一个的红 - 黑树在Java中,你可以看看,虽然。退房printTree()方法,看看他们如何走在有序树。

/**
 * Print all items.
 */
public void printTree( ) {
    printTree( header.right );
}

/**
 * Internal method to print a subtree in sorted order.
 * @param t the node that roots the tree.
 */
private void printTree( RedBlackNode t ) {
    if( t != nullNode ) {
        printTree( t.left );
        System.out.println( t.element );
        printTree( t.right );
    }
}

这,也许你可以写自己的方法来遍历树中的所有三个数量级。

其他提示

据我所知的TreeSet中/ TreeMap的类实际上不暴露任何他们内部的和仅仅符合设置/ Map接口。迭代器只保证以升序去。

我,为什么你会想在序扫描这些节点,因为这些树的目标不是代表对象之间的关系(例如,数学公式)有些纳闷,而是只存储所有这些和检索他们有效。

可以使用迭代和为每个循环至少执行步行序

void inOrderWalk(TreeMap<K,V> treeMap) {
   //this will loop through the values in the map in sorted order (inorder traversal)
   for (Map.Entry<K,V> entry : treeMap.entrySet() {
        V value = entry.getValue();
        K key = entry.getKey()
   }
}

然而,其他海报是正确的:Java不暴露任何树力学的,所以前序或后序是不可能在此视图中

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top