Diploma Universitario di Ingegneria Informatica
Esame di Fondamenti di Informatica II - secondo modulo
A.A. 1999/2000 - Appello del 19 luglio 2000

Problema 1   Sia data la seguente specifica di modulo per tipo astratto:
TipoAstratto Castello

Sorte Cas (sorta per il dominio di interesse)

Funzioni

FineTipoAstratto

Scrivere una classe C++ Castello (file .h e file .cpp) che realizzi il tipo astratto Castello, in modo che tutte le operazioni del tipo astratto, escluso Crea, siano realizzate in tempo costante (O(1)) nel caso atteso. Inoltre l'enemerazione restituita da QualiPorte deve permettere di passare da un elemento al successivo in tempo costante (O(1)). Qualora si faccia uso di strutture dati ausiliarie, quali Heap, AlberoRicerca, TavolaHash, Grafo, Iteratore, ecc., si riporti solo la definizione della classe (file .h) riportando una breve descrizione testuale delle funzioni più significative e del loro costo computazionale.

Problema 2   Realizzare una funzione esterna della classe Castello che dato un castello c restituisca la stanza più remota, cioè più lontana dalla stanza 0; qualora ne esista più di una se ne restituisca una qualsiasi.