Laboratorio Algoritmi e Strutture Dati (Corso B)
-------------
Appelli

[09/12/03]

Data una struttura di albero (a scelta) di numeri reali, scrivere un programma C/C++ che implementi gli operatori della struttura ed inoltre realizzare le seguenti funzionalità (dimostrandone l’utilizzo):

  1. immissione e stampa (user-friendly) di un albero
  2. massimo: restituisce il massimo numero dell’albero ricevuto in input
  3. minore: dati due alberi, restituisce l’albero con il massimo inferiore tra i due (funzione precedente)

[11/11/03]

Implementare la struttura dati che permetta di memorizzare una lista di rettangoli del piano cartesiano (RxR) (si possono memorizzare le coordinate degli estremi dei rettangoli), che permette di:
  1. Inserire e stampare la lista di rettangoli
  2. Funzione/metodo inscritto che dati due rettangoli A e B restituisce il valore vero se il rettangolo A è inscritto nel rettangolo B
  3. Funzione/metodo epurazione che elimina dalla struttura tutti i rettangoli inscritti in altri rettangoli usando la funzione/metodo inscritto
Ecco una soluzione data da uno studente: clicca qui

[16/09/03]

Implementare una lista di rettangoli del piano cartesiano R x R (ad es. memorizzando le coordinate dei vertici alto-sinistra e basso-destra), comprendente anche i seguenti operatori:
  1. Inserimento (Lista::inserimento()) e stampa (Lista::stampa()) della lista di rettangoli
  2. Double Lista::maxarea() che calcoli la massima area tra quelle dei rettangoli della lista
  3. Lista Lista::nonoverlap()che restituisce la sottolista dei rettangoli che non si sovrappongono
Ecco una soluzione data da uno studente: clicca qui

[08/07/03]

Implementare la struttura dati di tipo lista per la rappresentazione di polinomi di qualunque grado. In più si chiede di implementare eval(p,x) di valutazione del polinomio p nel punto x e la somma/differenza di 2 polinomi
  1. definizione delle funzioni di immissione e stampa della lista implementata
  2. definizione della funzione eval(p,x), che valuti il polinomio p nel punto x
  3. definizione della funzione somma del polinomio p(x)
  4. definizione della funzione differenza del polinomio p(x)
Esempio di input/output: p(x)=3+2x+5x3+7.4x4

[17/06/03]

Implementare la struttura dati di albero 3-ario (realizzazione a scelta), contenente una stringa per ogni nodo con gli operatori utili alla soluzione dei seguenti problemi:
  1. definizione delle funzioni di immissione e stampa dell'albero;
  2. definizione della funzione che, per ogni cammino, stampa le frase ottenuta concatenando le stringhe sui nodi che vi appartengono, separando le stringe dal carattere spazio.

[13/02/03]

La profondità di un albero binario è il massimo livello delle sue foglie. Si fornisca:
  1. la realizzazione in C o C++ di tale struttura, nella quale ogni nodo contiene un intero (fornire prove di inserimento e stampa dell'albero);
  2. la funzione che calcola la profondità dell'albero;
  3. la funzione che restituisce il totale degli interi contenuti in tutti i nodi;
  4. la funzione che restituisce il totale degli interi contenuti nelle foglie.

[19/12/02] - Esonero

Traccia a:
Fornendo una realizzazione in C++ della struttura dati di coda di caratteri numerici rappresentanti numeri interi lunghi a piacere, si implementino le funzioni richieste di seguito:

  1. inserimento nella coda di stringa di caratteri numerici letti da tastiera
  2. creazione della funzione di stampa a video del contenuto della coda
  3. funzione che calcola la coda contenente la somma dei numeri contenuti nelle due code passate in input
Dimostrare il corretto funzionamento delle funzioni mediante opportuno main.

Traccia b:
Fornendo una realizzazione in C++ della struttura dati di coda di caratteri numerici rappresentanti numeri interi lunghi a piacere, si implementino le funzioni richieste di seguito:
  1. inserimento nella coda di stringa di caratteri numerici letti da tastiera
  2. creazione della funzione di stampa a video del contenuto della coda
  3. funzione che calcola la coda contenente la differenza dei numeri contenuti nelle due code passate in input
Dimostrare il corretto funzionamento delle funzioni mediante opportuno main.