当值插入时,可比较和比较器如何在树形图或树集中内部工作?

时间:2015-10-05 12:28:23

标签: java

我很擅长实现部分,我只是想知道如何根据比较器或类似的方法将值插入到树形图中。 请不要只提供可比较和比较的实现。

基本上我想知道在Red Black Tree(TreeMap的底层数据结构)中插入值时Comparable和Comparator的不同之处。 如何插入。? 如果它是可比较的,将与哪个对象插入对象进行比较? 如果是比较器,将比较哪两个对象以获得树中的适当位置。 如果有一个例子,它会很棒

1 个答案:

答案 0 :(得分:1)

TreeMapTreeSet基本上是二叉树。由于这个原因,可以使用二进制搜索轻松找到可以找到/将要插入节点的位置:

//just a stub of how the search for a specific node might work (this is not the real implementation
Node currentNode = ...
if(comparator.compare(currentNode.content , toSearch) < 0)
    currentNode = currentNode.leftNode();
else
    ...
相关问题