Java 将元素插入四叉树时出现无限while循环问题
我试图在鼠标单击时将元素插入四叉树。当鼠标单击并发送点作为参数时,我调用insert方法。点击几下之后,whileinsert方法中的循环变为无穷大,我不知道为什么 这里是方法Java 将元素插入四叉树时出现无限while循环问题,java,quadtree,Java,Quadtree,我试图在鼠标单击时将元素插入四叉树。当鼠标单击并发送点作为参数时,我调用insert方法。点击几下之后,whileinsert方法中的循环变为无穷大,我不知道为什么 这里是方法 public void insert(Point point){ Node newNode = new Node(point); if(root==null){ root=newNode; return; }
public void insert(Point point){
Node newNode = new Node(point);
if(root==null){
root=newNode;
return;
}
Node current=root;
Node parent=null;
while(true){
parent = current;
System.out.println("a");
if(point.getX()<current.point.getX() && point.getY()<current.point.getY()){
current=current.NW;
if(current==null){
parent.NW= newNode;
return;
}
}
else if(point.getX()>current.point.getX() && point.getY()<current.point.getY()){
current=current.NE;
if(current==null){
parent.NE= newNode;
return;
}
}
else if(point.getX()<current.point.getX() && point.getY()>current.point.getY()){
current=current.SW;
if(current==null){
parent.SW=newNode;
return;
}
}
else if(point.getX()>current.point.getX() && point.getY()>current.point.getY()){
current=current.SE;
if(current==null){
parent.SE=newNode;
return;
}
}
}
}
如果您需要其余的代码,请告诉我。好吧,您还没有介绍point和current.point是同一个点,或者水平排列,或者垂直排列的情况。在这三种情况中的每一种情况下,if条件都不是真的,并且无法退出循环 您需要更改=。比如
if(point.getX()<=current.point.getX() && point.getY()<=current.point.getY()){
同样地,对于您使用