Strumenti Utente

Strumenti Sito


lcs:lcs06:esercitazioni:esercitazione1

Esercitazione 1

Esercizio 1: alberi binari ordinati

Scrivere un programma C che realizzi degli alberi binari ordinati di interi. Gli alberi binari ordinati sono tali che il valore memorizzato in un nodo è minore o uguale di tutti quelli memorizzati nel sottoalbero destro e maggiore o uguale di tutti quelli memorizzati nel sottoalbero sinistro.

Definire il tipo nodo che rappresenta il nodo generico dell'albero in modo opportuno. Si richiede di implementare almeno:

  • inserisci() che permette di inserire un nuovo intero nell'albero
  • cancella() che permette di cancellare un intero (se presente)
  • cerca() che permette di stabilire se un intero e' presente nell'albero
  • stampa() che stampa in modo ordinato tutti i valori di un albero
  • main() che effettua un opportuno testing delle funzioni implementate

Esercizio 2: compilazione separata e makefile

Suddividere il programma C relativo all'esercizio 1 in piu' file in modo che:

  • il main() sia contenuto in un file a parte rispetto alle altre funzioni
  • due opportuni file .c e .h per le altre funzioni (inserisci/cancella/cerca)

Sviluppare inoltre un opportuno makefile che contenga almeno i seguenti target:

  • all che permette di ricreare l'eseguibile di test
  • test test che esegue il test e confronta l'output con l'output atteso segnalando opportuni errori
  • cleanall che elimina i file di core e gli oggetti della compilazione.

Esercizio 3: map e reduce su alberi ordinati

Si considerino gli alberi ordinati degli esercizi 1 e 2: si realizzino due funzioni map_albero e reduce_albero:

  • La map_albero applica una funzione f (di tipo int (*f)(int))a tutti gli interi sull'albero sostituendo ogni intero x con f(x).
  • La reduce_albero 'somma' tutti gli interi nell'albero con l'operatore associativo (*f), di tipo int (*f)(int,int)

Definire inoltre un opportuno main di test ed estendere il makefile (ove necessario).

lcs/lcs06/esercitazioni/esercitazione1.txt · Ultima modifica: 08/02/2007 alle 13:18 (18 anni fa) da Susanna Pelagatti