Három kisbajnokság annak, aki először megírja külső változó(k) nélkül az előző poszt alábbi függvényét:
void kiir (BINFA_PTR elem) { if (elem != NULL) { ++melyseg; if (melyseg > max_melyseg) max_melyseg = melyseg; kiir (elem->jobb_egy); // ez a postorder bejáráshoz képest // 1-el nagyobb mélység, ezért -1 for (int i = 0; i < melyseg; ++i) printf ("---"); printf ("%c(%d)\n", elem->ertek < 2 ? '0' + elem->ertek : elem->ertek, melyseg-1); kiir (elem->bal_nulla); --melyseg; } }
(Itt ugye külső a melyseg és a max_melyseg.) Az új fgv. ez legyen: int kiir_r(BINFA_PTR elem, int melyseg) többet nem segítek :) A két függvénynek (kiir, kiir_r) természetesen ugyanazt kell adnia ugyanazon mintákra: maximális mélységre és ugyanazt a fát kell kiprintelniük!