所以我正在编写一个二叉搜索树的代码,我很远(我认为)并且有一点,当我尝试编译它时,我得到一个错误,说
“文件:D:\ ReservationQueue.java [line:15]
错误:左侧无法解析或不是字段
文件:D:\ ReservationQueue.java [line:17]
错误:右侧无法解析或不是字段
文件:D:\ ReservationQueue.java [line:4] 警告:从不在本地读取ReservationQueue.right字段...
这是错误的代码,
public class ReservationQueue{
private Reservation root;
private Reservation left;
private Reservation right;
public boolean empty() {return root == null;}
public String findRoot() {return root.getName();}
public void deleteRoot(){root = left; }
public void insert(Reservation node) {
if(this.empty()) {
root = node;
} else if (node.getPriority() < root.getPriority()){
insert(node.left);
} else if (node.getPriority() > root.getPriority()){
insert(node.right);
}
}
}
如果它有帮助,这是Reservation类 公共课堂预订{ private int priority; 私有字符串名称;
public Reservation(String name, int priority){
if (priority < 1) {
this.priority = 1;
} else if (priority > 10) {
this.priority = 10;
} else {
this.priority = priority;
}
}
public String getName(){return name;}
public int getPriority(){return priority;}
}
我真的需要帮助我不知道我做错了什么,谢谢你提前
答案 0 :(得分:1)
node
是Reservation
类型,left
和right
是ReservationQueue
的字段。因此以下两行不会编译:
insert(node.left);
insert(node.right);
如果ReservationQueue
是一个类型为Reservation
的节点的树,那么left
和right
可能应该是Reservation
的成员,而不是ReservationQueue
。
答案 1 :(得分:0)
目前还不完全清楚你在做什么。
可能是你的意思
else if (node.getPriority() < root.getPriority()){
insert(left);
} else if (node.getPriority() > root.getPriority()){
insert(right);