Alguien me puede explicar este trozo de código recursivo?:
void mostrarArbol(Nodo * arbol, contador){
if(arbol == NULL){
return;
}
else{
mostrarArbol(arbol->der, contador+1);
for( int i = 0; i<contador, i++){
cout << " ";
}
cout << arbol->dato << endl;
mostrarArbol(arbol->izq, contador + 1);
}
}
void mostrarArbol(Nodo * arbol, contador){
if(arbol == NULL){
return;
}
else{
mostrarArbol(arbol->der, contador+1);
for( int i = 0; i<contador, i++){
cout << " ";
}
cout << arbol->dato << endl;
mostrarArbol(arbol->izq, contador + 1);
}
}