6. Implemente la función cantidadTABBPersonas

6. Implemente la función cantidadTABBPersonas

de Federico Rivero -
Número de respuestas: 2
En respuesta a Federico Rivero

Re: 6. Implemente la función cantidadTABBPersonas

de Thiago Delfino Pacheco -
Hola, tengo una duda relacionada con el caso de prueba abbPersonas6-cantidad.

En abbPersonas.h se indica lo siguiente: // PRE: La persona con id no está en el árbol.

Sin embargo, en el caso de prueba mencionado, se intenta agregar una persona cuyo ID ya existe en el árbol.

"crearABBPersonasVacio
cantidadABBPersonas
crearPersona 10 Arturo Alvarez 10 03 1970
insertarPersonaABBPersonas
cantidadABBPersonas
crearPersona 11 Beatriz Baez 25 07 1985
insertarPersonaABBPersonas
cantidadABBPersonas
crearPersona 12 Carmen Cardozo 30 11 1972
insertarPersonaABBPersonas
cantidadABBPersonas
removerPersonaABBPersonas 11
cantidadABBPersonas
crearPersona 12 Carmen Cardozo 30 11 1972
insertarPersonaABBPersonas
cantidadABBPersonas
crearPersona 13 Daniel Diaz 05 01 1988
insertarPersonaABBPersonas
cantidadABBPersonas
liberarABBPersonas
Fin"

Como puede verse, se elimina a la persona con ID 11, pero luego se vuelve a insertar a la persona con ID 12, que ya estaba en el árbol.

La salida esperada en el archivo .out es la siguiente:

"1>2>La cantidad de personas en el árbol es 0.
3>4>5>La cantidad de personas en el árbol es 1.
6>7>8>La cantidad de personas en el árbol es 2.
9>10>11>La cantidad de personas en el árbol es 3.
12>La persona con id 11 se removió del árbol.
13>La cantidad de personas en el árbol es 2.
14>15>16>La cantidad de personas en el árbol es 3.
17>18>19>La cantidad de personas en el árbol es 4.
20>21>Fin."

Sin embargo, la salida que obtengo al ejecutar mi código es:
"1>2>La cantidad de personas en el árbol es 0.
3>4>5>La cantidad de personas en el árbol es 1.
6>7>8>La cantidad de personas en el árbol es 2.
9>10>11>La cantidad de personas en el árbol es 3.
12>La persona con id 11 se removió del árbol.
13>La cantidad de personas en el árbol es 2.
14>15>16>La cantidad de personas en el árbol es 2.
17>18>19>La cantidad de personas en el árbol es 3.
20>21>Fin."

Además, valgrind indica una pérdida de memoria por la persona creada y no liberada (por no ser agregada al ABB)

Dicho todo esto, quisiera saber si esta doble inserción de una persona con el mismo ID es un error en el caso de prueba o si debería contemplarse explícitamente en la implementación. Agradezco su respuesta, gracias.
En respuesta a Thiago Delfino Pacheco

Re: 6. Implemente la función cantidadTABBPersonas

de Federico Rivero -
Hola Thiago,

Efectivamente es un error del caso de prueba. Vamos a actualizar esa línea (cambiando el CI 12 que causa la doble inserción con mismo ID) y publicar una versión actualizada. De mientras si querés podés cambiar ese valor y seguir adelante con la tarea. Entiendo que si ponés CI 15 en la segunda inserción de Carmen Cardozo te debería funcionar bien.

Saludos,
Federico