有人告诉我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 );
}
}
由此,您可以编写自己的方法来遍历这三个顺序的树。