我刚刚过来this article,提出了各种泛型技术。
作者决定使用以下内容:
public class BinarySearchTree<T extends Comparable<? super T>> {
我不明白。为什么作者决定使用private Entry<T> root;
而不只是private Comparable root
?
通用树节点可以带来什么特别的优势来实现Comparable接口?我是否需要了解比二元搜索树,AVL树,Splay树,红黑树等结构中的2个元素更多?
答案 0 :(得分:1)
他决定选择Entry<Comparable>
,因为Entry是表示树中节点的附加类。最可能的条目定义类似于
class Entry<T extends Comparable<? super T>> {
T value;
Entry<T> leftAncestor;
Entry<T> rightAncestor;
}
然后二叉树结构具有树的根和使用它所需的方法。
答案 1 :(得分:1)
你需要知道关于树的孩子和结构。比较只是给你compareTo。条目至少给你左右孩子,所以在比较之后,你就会知道如何操纵结构以保持树的一致性。
答案 2 :(得分:0)
据我了解,此示例显示了二叉搜索树的实现细节。树条目不仅必须是可比较的,它们还必须包含有关左右子实体和(如果需要)父元素的信息。