有人告诉我Java类TreeMap使用RB树的实现。如果是这种情况,如何在TreeMap上进行有序,预排序和后排序的树遍历?

还是不可能?

最佳答案

使用Collections库中实现的TreeMap将无法执行此操作。这是Java中Red-Black Tree的实现,您可以查看。查看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 );
    }
}

由此,您可以编写自己的方法来遍历这三个顺序的树。

08-26 07:57