Esercizio 1

Si scriva un programma che accetti in input da linea di comando una stringa e che restituisca in output tutti i possibili anagrammi di tale stringa (indipendentemente dal fatto che siano o meno parole esistenti) ordinati alfabeticamente.

Esercizio 2

Si consideri la seguente rappresentazione di un generico albero in notazione prefissa:

<tree> ::= <node>(<tree>*)

dove <node> e' un carattere.
Scrivere un programma che legga in input da linea di comando un albero rappresentato attreverso questa notazione e lo visualizzi in linee indentate.
Si puo' assumere che la stringa specificata nella linea di comando sia sempre corretta.

Esempio.
Si consideri il seguente albero:

a(b(c())d()e(f(g())h()))

Leggendo in input tale stringa il programma dovra' visualizzare:

a
    b
        c
    d
    e
        f
            g
        h