Преобразовать рекурсивный алгоритм в итеративный?

У меня есть следующий рекурсивный алгоритм, необходимый для преобразования в итеративный процесс. 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
    }

}

Я хочу преобразовать эту логику в итеративный алгоритм. Есть какие-нибудь советы по этому поводу?

7
задан Gabriel Schreiber 30 September 2011 в 12:31
поделиться