У меня есть следующий рекурсивный алгоритм, необходимый для преобразования в итеративный процесс. CvSeq представляет собой древовидную структуру. Где contour-> h_next дает следующий узел на том же уровне. contour-> v_next дает следующий контур на уровне ниже . (дочерний узел)
void helperParseCurves(CvSeq* contour, int level) {
if(contour->h_next != NULL) {
helperParseCurves(contour->h_next, level);
}
if(contour->v_next != NULL) {
helperParseCurves(contour->v_next, level+1);
}
//Process the nodes in contour
for(int i=0; i<contour->total; i++){
CvPoint* p = CV_GET_SEQ_ELEM(CvPoint, contour, i);
//Paint the point p
}
}
Я хочу преобразовать эту логику в итеративный алгоритм. Есть какие-нибудь советы по этому поводу?