Subárbol menor de productos V84248


Statement
 

pdf   zip   tar

thehtml

En este ejercicio tendréis que resolver un algoritmo de la práctica, pero en vez de usar la clase BinTree programaréis el algoritmo en la clase Arbre. No se puede llamar a las operaciones de Arbre, sino que tenéis que programarlo usando punteros.

El algoritmo crea, a partir de un árbol de salas y un conjunto de productos que se encuentran en el árbol, el subárbol menor de éste que incluya la raíz, y todos los productos del conjunto.

La cabecera y especificación son las siguientes:

/**
* @pre:  El árbol (p.i.) está vacío. Los productos del set están todos
*        en el árbol 'a'.
*
* @post: El árbol (p.i.) contiene el subárbol menor de 'a' que incluye todos
*        los 'productos', incluyendo la raíz.
*/
void crear_subarbol(const Arbre& a, set<string>& productos);

(La declaración de crear_subarbol se encuentra al final del fichero Arbre.hh.)

Los ficheros públicos (icono del gatito) incluyen un .tar con main.cc, Arbre.hh, Arbre-io.hh, y un Makefile. También se incluye una copia de los juegos de prueba públicos. En la carpeta donde se descompriman se puede: compilar con "make"; y testear con "make test".

El main.cc ya se encarga de leer la entrada, crear el subárbol y producir la salida. Para entregar, solo es necesario subir al Jutge vuestro archivo Arbre.hh modificado.

Observaciones

Con el fin de programar la operación anterior, podríais necesitar alguna operación privada y posiblemente static.

Entrada

La entrada es una representación textual del árbol de salas de la tienda, y una secuencia con el conjunto de productos que ha seleccionado el usuario, tal como en la práctica. (Esto está ya implementado en main.cc).

Salida

La salida es la representación textual del subárbol mínimo encontrado. (Esto también está implementado en main.cc.)

Public test cases
  • Input

    futbol 
    |-- tenis 
    |   |-- alimentacion
    |   '-- golf 
    '-- fitnes 
        |-- piscina 
        '-- hipica 
    
    futbol alimentacion #
    

    Output

    futbol
    |-- tenis
    |   |-- alimentacion
    |   '-- #
    '-- #
    
  • Input

    zapatos 
    |-- piscina 
    |   |-- futbol 
    |   |   |-- tenis 
    |   |   '-- basquet
    |   '-- alimentacion
    '-- hipica
        |-- golf
        '-- fitnes
    
    basquet alimentacion golf #

    Output

    zapatos
    |-- piscina
    |   |-- futbol
    |   |   |-- #
    |   |   '-- basquet
    |   '-- alimentacion
    '-- hipica
        |-- golf
        '-- #
    
  • Information
    Author
    PRO2
    Language
    Spanish
    Translator
    Original language
    Catalan
    Other languages
    Catalan
    Official solutions
    Unknown.
    User solutions
    C++