采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
波波老师,这里添加操作中进行两个节点的比较,我们知道,对于自定义的对象,需要实现 Comparable 接口,并自定义实现 compareTo()方法, 但是这里并没有在E 这个泛型的类中重写Comparable 中的compareTo() 方法,因此这里的compareTo() 是根据什么进行比较的呢?我如果可以通过源码看的到具体比较的方法?谢谢!
由于我们进行了泛型限制:
public class BST<E extends Comparable<E>>
所以,我们知道,存储在这个BST中的类型E,一定实现了Comparable接口。所以我们可以放心的调用comareTo。具体它是怎么实现的,BST不管!传来的是Integer,用的就是Integer的compareTo;传来的是String,用的就是String的compareTo。如果传来Student,这个Student必须实现了Comparable接口,也就是必须自定义了compareTo,用的就是自定义的那个compareTo:)
明白了,就是储存在BST 中的对象的类一定是要实现Comparable 且实现compareTo() 方法的。
登录后可查看更多问答,登录/注册
动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…
10.4k 16
1.4k 17
1.3k 14