我有一个班级
private class BSTNode<E extends Comparable<E>> implements Comparable<E> {
BSTNode<E> left, right;
E data;
使用构造函数和compairTo方法
但是当我想要实例化BSTNode类时,我遇到了问题。
public class BST {
private BSTNode<E> root;
/* Constructor */
public BST() {
root = new BSTNode<E>();
}
我应该如何在BST课程中使用BSTNode?感谢
答案 0 :(得分:1)
这些方面的东西(不是完整的承诺或具体):
public class BST<E extends Comparable<E>>
{
private class BSTNode<E extends Comparable<E>> implements Comparable<E> {
BSTNode<E> left, right;
E data;
@Override
public int compareTo(E o) {
return 0;//implement method here
}
}
private BSTNode<E> root;
public BST() {
root = new BSTNode<E>();//while comparing you would need to case E to comparable and call compareTo method
}
public static void main(String[] args)
{
BST<String> messages = new BST<String>();
}
}
答案 1 :(得分:0)
您的类标头意味着您的BTSNode只能使用实现Comparable接口的类E进行实例化。
因此,你应该可以按如下方式使用它:
public class BST {
private BSTNode<Integer> root;
/* Constructor */
public BST() {
root = new BSTNode<Integer>();
}
}
Integer
可以替换为列出here列出的任何其他实现类或您自己的自定义实现。