我对于泛型和二叉搜索树仍然相当新,我正在尝试向BST添加自定义Student
对象,并且不知道如何实现它。我有Student
类声明,如下所示:
class Student <E>implements Serializable, Comparable {
int studentNumber;
String firstName;
String lastName;
String major;
double gpa;
Student leftChild;
Student rightChild;
public Student() {
this(0, "", "", "", 0.0);
} // end no-argument studentNumberRecordSerializable constructor
public Student(int sNum, String first, String last, String major, double gpa) {
setstudentNumber(sNum);
setFirstName(first);
setLastName(last);
setMajor(major);
setGPA(gpa);
} // end four-argument studentNumberRecordSerializable constructor
....
然后我的Node类:
class TreeNode<E extends Comparable<E>> {
TreeNode<E> leftNode;
E data;
TreeNode<E> rightNode;
public TreeNode(E nodeData) {
data = nodeData;
leftNode = rightNode = null;
} // end TreeNode constructor
public void insert(E insertValue) {
if (insertValue.compareTo(data) < 0) {
if (leftNode == null)
leftNode = new TreeNode<E>(insertValue);
else
leftNode.insert(insertValue);
} // end if
....
然后我试图宣布Tree<Student> tree = new Tree<Student>();
,并且说这个学生是无效的论点。我还想调用tree.insertNode(new Student(studentNumber, firstName, lastName, major, gpa));
将其添加到节点。是否还有一个我没有遵循的额外步骤或者我做得不对的事情?我已经做了很多关于仿制药和BST的研究,但是我把两者捆在一起很麻烦。请帮忙!
答案 0 :(得分:2)
修复学生班级声明:
class Student implements Serializable, Comparable<Student> {