說我有以下幾點:遞歸布爾函數
bool signal(QtreeNode * & orig, QtreeNode * & n, int tolerance) {
bool signal1= false, signal2= false, signal3= false, signal4= false;
if(n->isLeaf()){
if(totalDiff>tolerance) //suppose these were defined
return true;
else return false;
}
signal1=signal(orig, n->neChild, tolerance);
signal2=signal(orig, n->nwChild, tolerance);
signal3=signal(orig, n->swChild, tolerance);
signal4=signal(orig, n->seChild, tolerance);
if(signal1 || signal2 || signal3 || signal4)
return true;
else return false;
}
而且說我叫一些包裝方法像這樣的方法:
signal1=signal(orig, n, tolerance);
if(signal1)
//do something
所以我在做什麼這裏穿越整個四分之一樹尋找只有一個情況下,我變得真實。我需要的功能是在totalDiff大於容差的情況下返回true。我擔心我所擁有的不是做我希望做的事。看看函數,看起來像,當我在我的包裝方法中設置signal1時,如果僅發現1個該情況,我將返回true
?還是我做錯了?