什么以return为空堆的最小元素
What to return as the minimum element of an empty heap
我写了这个简单的代码来检查二进制堆是否为空。我对 return 有疑问。不能是:null
、void
或什么都不是;它应该 return something int,但我不知道是什么。那么,如果我想让这段代码保持简单,我应该放在那里什么? (我的意思是不使用 Integer
class 或 java.lang.Integer
)。
public int getMinimum() {
if (isEmpty()) {
System.out.println("Heap is empty");
return;
} else
return data[0];
}
无效值抛出异常并在调用时处理
public int getMinimum() throws Exception {
if (isEmpty())
throw new Exception("Heap is Empty");
else
return data[0];
}
当获得最小值时
try{
int i = getMinimum();
System.out.println("Minimum is :" + i);
}catch(Exception e){
System.out.println(e.getMessage());
}
我只能帮助消除... java 不是魔术。如果您将函数声明为 return 一个 "int",那么编译器将使您成为 return 一个 int。
这留下了有限的选择:
1) 抛出异常,并教您的用户将其与 'isEmpty()' 结合使用,例如:
如果(theHeap.isEmpty()) System.out.println("empty");
否则 System.out.println(theHeap.getMinimum())
2) 使用您不喜欢的整数(我猜是出于性能原因?)
3) 找到一些不太可能出现在数据中的 int 值,例如也许你不希望你的堆永远持有 Integer.MIN_VALUE.
如果您的堆包含双打,我建议使用 NaN。
这就是 java 语法中可用的所有内容,抱歉,这不是地面制动...
int 是原始类型,因此需要有一个值。
如果真的要这样解决,需要指定一个永远不会出现在堆中的某个int值。您也可以尝试在堆为空时抛出异常。
我们可以简单地声明它是“Integer”而不是“int",所以我们也可以 return "null"。
public Integer getMinimum(){
if(isEmpty())
return null;
else
return data[0];
}
我写了这个简单的代码来检查二进制堆是否为空。我对 return 有疑问。不能是:null
、void
或什么都不是;它应该 return something int,但我不知道是什么。那么,如果我想让这段代码保持简单,我应该放在那里什么? (我的意思是不使用 Integer
class 或 java.lang.Integer
)。
public int getMinimum() {
if (isEmpty()) {
System.out.println("Heap is empty");
return;
} else
return data[0];
}
无效值抛出异常并在调用时处理
public int getMinimum() throws Exception {
if (isEmpty())
throw new Exception("Heap is Empty");
else
return data[0];
}
当获得最小值时
try{
int i = getMinimum();
System.out.println("Minimum is :" + i);
}catch(Exception e){
System.out.println(e.getMessage());
}
我只能帮助消除... java 不是魔术。如果您将函数声明为 return 一个 "int",那么编译器将使您成为 return 一个 int。 这留下了有限的选择:
1) 抛出异常,并教您的用户将其与 'isEmpty()' 结合使用,例如: 如果(theHeap.isEmpty()) System.out.println("empty"); 否则 System.out.println(theHeap.getMinimum())
2) 使用您不喜欢的整数(我猜是出于性能原因?)
3) 找到一些不太可能出现在数据中的 int 值,例如也许你不希望你的堆永远持有 Integer.MIN_VALUE.
如果您的堆包含双打,我建议使用 NaN。
这就是 java 语法中可用的所有内容,抱歉,这不是地面制动...
int 是原始类型,因此需要有一个值。 如果真的要这样解决,需要指定一个永远不会出现在堆中的某个int值。您也可以尝试在堆为空时抛出异常。
我们可以简单地声明它是“Integer”而不是“int",所以我们也可以 return "null"。
public Integer getMinimum(){
if(isEmpty())
return null;
else
return data[0];
}