Java:在实现各种树结构时,我是否应该支持泛型?

时间:2010-10-22 19:04:20

标签: java generics

我刚刚过来this article,提出了各种泛型技术。

作者决定使用以下内容:

public class BinarySearchTree<T extends Comparable<? super T>> {

我不明白。为什么作者决定使用private Entry<T> root;

而不只是private Comparable root

通用树节点可以带来什么特别的优势来实现Comparable接口?我是否需要了解比二元搜索树,AVL树,Splay树,红黑树等结构中的2个元素更多?

3 个答案:

答案 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)

据我了解,此示例显示了二叉搜索树的实现细节。树条目不仅必须是可比较的,它们还必须包含有关左右子实体和(如果需要)父元素的信息。

相关问题