Curso 2023/2024
La siguiente solución no funciona correctamente. Piensa qué es lo que está mal.
int Cola::buscarPosicion(int dato) const { return buscarPosicion(dato, primero, 0); } int Cola::buscarPosicion(int dato, Nodo * n, int contador) const { if (n == nullptr) return -1; if (n->dato == dato) return contador; return buscarPosicion(dato, n->siguiente, contador++); }
El error en esta solución es poner contador++
en vez de
contador + 1
. Eso es incorrecto
porque contador++
incrementa contador
y devuelve como resultado
lo que valía antes del incremento; lo que devuelve como
resultado sería lo que estaríamos pasando como argumento.
En el ejercicio 11.b del tema 1 se explica esto.