Parcial Mayo 2016 - Ejercicio 3 (Solución)

Parcial Mayo 2016 - Ejercicio 3 (Solución)

de Rodrigo Sastre Marotta -
Número de respuestas: 3

Hola,

Disculpen que utilice este foro para esta consulta, pero no me funcionó correctamente el foro de parciales.

Mirando la solución del ejercicio 3, no me queda claro si el procedimiento funciona correctamente en el siguiente caso: El directorio D no es la raíz y el directorio con el nombre que deseo borrar es un subdirectorio de un hermano de D. 

En este caso el procedimiento no debería borrar dicho directorio, pero entiendo que lo haría según la implementación de la solución.

Si alguien me da una mano para pensarlo mejor sería de mucha ayuda. Gracias!

Saludos!


En respuesta a Rodrigo Sastre Marotta

Re: Parcial Mayo 2016 - Ejercicio 3 (Solución)

de Danilo Espino - InCo -
Rodrigo,

En primer lugar digamos que lo que se pide es borrar el directorio que no tiene hijos (subdirectorios) y coincide en nombre. Entonces lo que se hace es eliminar el directorio que coincida en nombre y no tenga primer hijo. Si no coincide el nombre, se hace la recursión sobre los hijos y hermanos. Si directamente el directorio es NULL, la recursión termina.

Espero haya aclarado.

Saludos.
En respuesta a Danilo Espino - InCo

Re: Parcial Mayo 2016 - Ejercicio 3 (Solución)

de Rodrigo Sastre Marotta -

Hola Danilo,

Muchas gracias por la respuesta. Lo que no me queda totalmente claro es si en todos los casos se debe hacer la recursión sobre los hermanos. En el primer llamado, en mi opinión no debería hacerse la recursión sobre el hermano, ya que estaría borrando fuera del directorio D. En caso de que D sea la raíz, no habría problema, ya que no tiene hermanos. Pero si no es la raíz, ¿Se desea borrar dentro del hermano de D? No se si logre expresar la idea. Muchas gracias.

Saludos!

En respuesta a Rodrigo Sastre Marotta

Re: Parcial Mayo 2016 - Ejercicio 3 (Solución)

de Danilo Espino - InCo -

Rodrigo,

En la primer llamada (es decir, en la raíz) no van a haber hermanos. Esto porque en ese caso no se trataría de un árbol general sino de un bosque. Evidentemente esto no genera problemas en la solución propuesta ya que el siguiente hermano será vacío en ese caso particular. Esto no implica que en las llamadas recursivas que se hagan los nodos subsiguientes no tengan hermanos.

Espero, ahora sí, haya aclarado.

Saludos.