Java树排序
对于学校,我必须用Java编写自己的树类。如果您也有问题,请编写名为idSorted的函数,由谁检查树是否按顺序排序。它必须是递归的,我应该使用getMin和getMax方法。我知道我是这样检查的:Java树排序,java,recursion,tree,Java,Recursion,Tree,对于学校,我必须用Java编写自己的树类。如果您也有问题,请编写名为idSorted的函数,由谁检查树是否按顺序排序。它必须是递归的,我应该使用getMin和getMax方法。我知道我是这样检查的: getLeft().getMax() <= this.getValue() && this.getRight().getMin(); 您有多个问题: 您提到的检查条件不正确 将类的名称更改为更合适的节点 如果您不想要容器[Tree]类,您应该有一个属性根 在isShort()
getLeft().getMax() <= this.getValue() && this.getRight().getMin();
您有多个问题:
在您学习的过程中,我将编码部分留给您作为练习。我尝试了一些东西,希望是正确的
public boolean isSorted(){
if(this.getvalue()<getMin()||this.getvalue()>getMax()){
return false;
}
//Schaut im linken Teil
boolean linksrichtig =false;
//gibt es nen linken Unterbaum
if(this.getleft()!=null){
//linker unterbaum kleiner?
if(this.getleft().getvalue()<this.getvalue()){
//rekursiv weiterschauen richtung links
linksrichtig = isSorted();
}else{
//wenn größer dann falsch
linksrichtig = false;
}
}else{
//wenn links nichts exestiert dann richtig
linksrichtig = true;
}
//Schaut im rechten Teil
boolean rechtsrichtig =false;
//gibt es nen rechten Unterbaum
if(this.getright()!=null){
//rechter unterbaum größer oder gleich?
if(this.getright().getvalue()>=this.getvalue()){
//rekursiv weiterschauen richtung rechts
rechtsrichtig = isSorted();
}else{
//wenn kleiner dann falsch
rechtsrichtig = false;
}
}else{
//wenn rechts nichts exestiert dann richtig
rechtsrichtig = true;
}
return (rechtsrichtig&&linksrichtig);
}
public boolean isSorted(){
if(this.getvalue()getMax()){
返回false;
}
//我是林登泰尔
布尔linksrichtig=false;
//这是一个很好的例子
if(this.getleft()!=null){
//链接器unterbaum kleiner?
如果(this.getleft().getvalue()=this.getvalue()){
//rekursiv weiterschauen richtung rechts
rechtsrichtig=isSorted();
}否则{
//韦恩·克莱纳·达恩·法尔希
rechtsrichtig=false;
}
}否则{
//这是一个很好的例子
rechtsrichtig=真;
}
返回(rechtsrichtig和&linksrichtig);
}
public boolean isSorted(){
if(this.getvalue()<getMin()||this.getvalue()>getMax()){
return false;
}
//Schaut im linken Teil
boolean linksrichtig =false;
//gibt es nen linken Unterbaum
if(this.getleft()!=null){
//linker unterbaum kleiner?
if(this.getleft().getvalue()<this.getvalue()){
//rekursiv weiterschauen richtung links
linksrichtig = isSorted();
}else{
//wenn größer dann falsch
linksrichtig = false;
}
}else{
//wenn links nichts exestiert dann richtig
linksrichtig = true;
}
//Schaut im rechten Teil
boolean rechtsrichtig =false;
//gibt es nen rechten Unterbaum
if(this.getright()!=null){
//rechter unterbaum größer oder gleich?
if(this.getright().getvalue()>=this.getvalue()){
//rekursiv weiterschauen richtung rechts
rechtsrichtig = isSorted();
}else{
//wenn kleiner dann falsch
rechtsrichtig = false;
}
}else{
//wenn rechts nichts exestiert dann richtig
rechtsrichtig = true;
}
return (rechtsrichtig&&linksrichtig);
}