-6
Я пытаюсь сравнить все листья, чтобы вернуть самое низкое значение дерева, у меня нет основной функции, просто скрипта для вставки значений, поэтому, к сожалению, я не могу его отладить.Найти самый низкий лист в двоичном дереве
tpNoArvore * findLowest(tpNoArvore * pNo){
tpNoArvore * left;
tpNoArvore * right;
tpNoArvore * res;
if (!pNo) return NULL; /* if */
left = findLowest(pNo->pNoL);
right = findLowest(pNo->pNoR);
if(isLeaf(pNo))
return pNo;
} /* if */
if(!left){
return right;
} /* if */
if(!right){
return left;
} /* if */
return (left->Valor < right->Valor) ? left : right ;
}
Итак, в основном то, что я пытаюсь достичь здесь, - это сравнить две стороны каждого узла, чтобы найти самый низкий.
Вы не сказали нам, что хотите, в довольно многих граничных случаях. Например, что вы хотите сделать в случае галстука (два или более узлов на одной глубине)? –
где находится «Доблесть»? (Это ключ, чтобы сделать эту работу) – DrKoch