代码之家  ›  专栏  ›  技术社区  ›  Xorty

Java:在实现各种树结构时,我应该赞成泛型吗?

  •  2
  • Xorty  · 技术社区  · 14 年前

    我刚过来 this article 建议使用各种仿制药技术。

    作者决定使用以下内容:

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

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

    而不仅仅是 private Comparable root ?

    通用树节点能给实现的可比接口带来什么特别的优势?在二进制搜索树、AVL树、八字树、红黑树等结构中,我是否需要知道超过2个元素的比较?

    3 回复  |  直到 14 年前
        1
  •  1
  •   NG.    14 年前

    你需要了解孩子和树的结构。比较只是给你比较。条目至少为您提供了左和右子级,因此在比较之后,您将知道如何操作结构以保持树的一致性。

        2
  •  1
  •   vstoyanov    14 年前

    他决定去 Entry<Comparable> 因为条目是表示树中节点的附加类。很可能条目的定义与此类似

    class Entry<T extends Comparable<? super T>> { T value; Entry<T> leftAncestor; Entry<T> rightAncestor; }

    然后二叉树结构具有树的根和使用它所需的方法。

        3
  •  0
  •   Kel    14 年前

    据我所知,这个例子显示了二进制搜索树的实现细节。树条目不仅要具有可比性,还必须包含有关左-右子实体和(如果需要)父元素的信息。