Curso 2023/2024
Esto son ejemplos de errores cometidos por estudiantes. Piensa en qué casos pueden fallar.
bool Cola::colasIguales(const Cola & otraCola) const { return colasIguales(primero, otraCola.primero); } bool Cola::colasIguales(Nodo * n1, Nodo * n2) const { if (n1->dato == n2->dato) return true; return colasIguales(n1->siguiente, n2->siguiente); }
¿Esto cuándo devuelve false
?
bool Cola::colasIguales(const Cola & otraCola) const { return colasIguales(primero, otraCola.primero); } bool Cola::colasIguales(Nodo * n1, Nodo * n2) const { if (n1 == nullptr && n2 == nullptr) return true; else if (n1->dato != n2->dato || n1 == nullptr || n2 == nullptr) return false; return colasIguales(n1->siguiente, n2->siguiente); }
No podemos comprobar si n1->dato != n2->dato
si n1
vale nullptr
o n2
vale nullptr
.