Esercizio 1

Scrivere un programma che legga in input una griglia in cui ogni casella puo' essere piena o vuota e che, a partire da una casella vuota specificata, riempia tutte le casella direttamente o indirettamente (attraverso altre caselle vuote) collegate con la cella di partenza.
Si noti che per celle collegate direttamente ad una cella vuota si intendono (ove esistano) le celle vuote che circondano una cella data nelle quattro direzioni cardinali.
Il programma leggera' la griglia a partire da una sua rappresentazione in forma di un file di testo contenente tante righe quante le righe della griglia e, in ogni riga, i caratteri ' ' (spazio) e '+' rappresenteranno, rispettivamente, una casella vuota e una piena.
Una volta riempita opportunamente la griglia il programma ne visualizzera' una rappresentazione consistente con quella usata per il file di input.

A titolo di esempio si riporta una possibile griglia:

++++++++++++++++++++++++
++     ++++      +   + +
++++     ++     +++    +
++      +++   ++++  ++ +
+               +      +
+        ++   ++++++  ++
+++      +  +++    +++++
++++++     +++   ++   ++
+++     +    +    +++  +
++          +++    +   +
+       +++++++++      +
++++++++++++++++++++++++ 

Esercizio 2

Scrivere un programma che legga una serie di numeri interi tutti diversi fra loro (impostati dall'utente attraverso i parametri nella linea di comando), crei, a partire da questi numeri, un albero binario di ricerca e visualizzi questi numeri in ordine crescente attraverso la visita dell'albero.

Si ricorda che un albero binario di ricerca e' un albero binario che gode delle seguenti proprieta':
1. ogni nodo contiene un valore relazionabile con i valori degli altri nodi attraverso un ordine totale;
2. i valori dei nodi sono unici;
3. il valore di ogni nodo e' maggiore del valore del figlio sinisto (se esistente) e minore del figlio destro (se esistente).