Skip navigation.
University » Corsi precedenti (it) » ASD » 2006-07 » 30/05/07

Quarta Esercitazione in Laboratorio


Nel seguito si propongono alcuni esercizi d’esame sugli alberi AVL. Per implementare quanto richiesto, useremo le classi AvlNode e AvlTree: per scaricarle fai clic qui, e copia tutti i file nella cartella di lavoro.

La classe AvlTree è schematizzata come segue:

public class AvlTree {
  protected AvlNode root;
  public AvlTree() {...}
  public void insert(int key, Object el) {...}
  public void remove(int key) {...} 
  public Object find(int key) {...}
  public boolean isEmpty() {...}
}

in cui viene utilizzata la classe AvlNode

public class AvlNode {
  public int key;
  public Object el;            //info associata alla chiave
  public AvlNode left, right;
  public int height;
  public int size;             //numero di nodi del sottoalbero che ha per radice questo nodo
 
}

Dalla prova d’esame del 19/09/2005, Problema 4

Estendere AvlTree per progettare una classe che implementi la seguente interfaccia:

public interface CodaDoppia {
  void insert(int key);
  int getMin();     //Restituisce l'elemento con chiave piu' piccola, NdT
  int getMax();     //Restituisce l'elemento con chiave piu' grande,  NdT
  void removeMin(); //Elimina l'elemento con chiave piu' piccola, NdT
  void removeMax(); //Elimina l'elemento con chiave piu' grande,  NdT
}

Realizzare i metodi getMin() e getMax() in modo che abbiano costo .

Dalla prova d’esame del 14/09/2004, Problema 5

Scrivere una classe Java che implementi l’interfaccia Diz2D mediante la classe AvlTree. Determinare i costi computazionali dei tre metodi implementati.

public interface Diz2D  { 
  void insert(int x, int y, Object el); // generica info (el) associata a (x, y) 
  void delete(int x, int y); 
  Object find(int x, int y); // restituisce info associata a (x, y) o null 
}

Dalla prova d’esame del 09/07/2003, Problema 4

Scrivere un metodo Java, con segnatura public static Object search_i(AvlNode root, int i), che restituisce lâ??i-esimo elemento memorizzato in un albero AVL con costo computazionale proporzionale allâ??altezza dellâ??albero.

Prova d’esame del 14/09/2004, Problema 4

Dato un albero binario (chiavi int), scrivere un metodo Java che determini se l’albero è un BST. Definire la rappresentazione Java dell’albero e calcolare il costo computazionale del metodo.

Commenti dei visitatori

Accedi per lasciare commenti.