Esercizio 1 ----------- Scivere una funzione ricorsiva che verifica se una lista e' un prefisso di un'altra lista. In particolare: 1. scrivere una funzione che, date due liste l1 e l2, ritorna un valore vero/falso che segnala se l1 e' un prefisso di l2 o meno; 2. modificare la precedente funzione in modo che, nel caso in cui l1 e' un prefisso di l2, si possa ottenere come risultato la lista l corrispondente a cio' che rimane di l2 dopo aver eliminato la parte uguale ad l1. Esercizio 2 ----------- Scivere una funzione ricorsiva che verifica se l1 e' un postfisso di l2. La funzione dovra' ritornare il puntatore al postfisso di l2 uguale ad l1, se questo postfisso esiste, oppure NULL. Esercizio 3 ----------- Scrivere una funzione che, date due liste l1 ed l2, calcola il piu' corto prefisso non vuoto di l1 che e' anche un postfisso di l2, se un tale prefisso esiste. La funzione dovra' ritornare il puntatore al postfisso di l2 cercato se questo esiste, oppure NULL, se non esiste. Variante: Modificare la precedente funzione in modo di ottenere il piu' lungo prefisso di l1 che e' un postfisso di l2. Esercizio 4 ----------- Data una lista l, indichiamo con rev(l) la lista che si ottiene rovesciando l'ordine degli elementi in l. Scrivere una funzione che, date due liste l1 ed l2, calcola (se esiste) il piu' lungo prefisso l di l1 tale che rev(l) e' un postfisso di l2. La funzione dovra' ritornare il puntatore al postfisso di l2 uguale a rev(l).