Java的TreeMap的排序选项?
-
22-07-2019 - |
题
我已经告诉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不暴露任何树力学的,所以前序或后序是不可能在此视图中
。不隶属于 StackOverflow