Il 0% ha trovato utile questo documento (0 voti)
24 visualizzazioni2 pagine

Testo 8

Caricato da

renzonitommaso2
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
24 visualizzazioni2 pagine

Testo 8

Caricato da

renzonitommaso2
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 2

Algoritmi e Strutture Dati – Prova di Laboratorio

18/07/2023

Istruzioni
Risolvere il seguente esercizio implementando un programma in un singolo
file .cpp, completo di funzione main. Si presti particolare attenzione alla
formattazione dell’input e dell’output, e alla complessità target indicata per
ciascuna funzionalità. Nel caso la complessità target non sia specificata,
si richiede che sia la migliore possibile. La lettura dell’input e la scrittu-
ra dell’output DEVONO essere effettuate tramite gli stream cin e cout
rispettivamente. La correzione avverrà prima in maniera automatica in-
viando il file .cpp al server indicato in aula. Quest’ultimo esegue dei test
confrontando l’output prodotto dalla vostra soluzione con l’output atteso.
In caso la verifica abbia esito positivo sarà possibile consegnare il compi-
to, il quale verrà valuato dai docenti in termini di complessità. Si ricorda
che è possibile testare la correttezza del vostro programma in locale su un
sottoinsieme dei input/output utilizzati nella seguente maniera. I file di
input e output per i test sono nominati secondo lo schema: input0.txt
output0.txt input1.txt output1.txt ... Per effettuare le vostre prove
potete utilizzare il comando del terminale per la redirezione dell’input. Ad
esempio

./compilato < input0.txt

effettua il test del vostro codice sui dati contenuti nel primo file di input,
assumendo che compilato contenga la compilazione della vostra soluzione e
che si trovi nella vostra home directory. Dovete aspettarvi che l’output coin-
cida con quello contenuto nel file output0.txt. Per effettuare un controllo
automatico sul primo file input input0.txt potete eseguire la sequenza di
comandi

./compilato < input0.txt | diff - output0.txt

Questa esegue la vostra soluzione e controlla le differenze fra l’output pro-


dotto e quello corretto.

1
Esercizio
Si consideri un sistema per la gestione di alberi binari di ricerca (ABR)
aventi etichette intere. A ciascuno nodo é associato un colore rappresentato
tramite un carattere alfanumerico. Siano date le seguenti definizioni:
Un nodo si dice accerchiato se è figlio di un padre con colore c, ed ha
due figli con colore c.
Scrivere un programma che:

• legga da tastiera N coppie [etichetta,colore] e le inserisca all’interno


dell’ABR. I valori devono essere inseriti nello stesso ordine con cui
vengono letti (le etichette ≤ vanno inserite a sinistra);

• stampi le etichette dei nodi aventi almeno un figlio accerchiato, ordi-


nati per etichetta non decrescente.

L’input è formattato nel seguente modo: la prima riga contiene l’intero N .


Seguono N righe contenenti una coppia [intero, stringa] ciascuna, con gli
elementi della coppia separati da uno spazio.
L’output contiene gli elementi della soluzione, uno per riga.

Esempio
Input

10
10 v
5 v
3 r
1 v
7 v
4 v
8 v
15 v
20 v
40 g

Output

Potrebbero piacerti anche