public void insert(int number) {
heapArr.add(number);
percolateUp(this.heapArr.size()-1);
}
public void percolateUp(int key) {
if (getParent(key) >=0 && heapArr.get(getParent(key)) < heapArr.get(key)) {
int temp = heapArr.get(getParent(key));
heapArr.set(getParent(key), heapArr.get(key));
heapArr.set(key, temp);
percolateUp(getParent(key));
} else {
return;
}
}
我正试图将我的头包裹在尾递归上,据我所知,一些编译器可以判断你是否有尾递归函数并且不会创建任何额外的堆栈帧。在我上面的例子中,我试图弄清楚递归渗透是否是尾递归的。它不一定要等待函数的返回,所以编译器会将其识别为尾递归吗?