Esercizio di esame 26/3/2002

Canale A-L (Liberatore)/ Parte II

Esercizio 1

Sia data la seguente definizione di classe:

class Vis {
  private int x;
  private static int y;

  public Vis(int x) {
    this.x=x; y=x;
  }
  public int primo(int x) {
    x=x+1; return secondo(y);
  }
  public int secondo(int y) {
    return x-1;
  }
} 

Dire cosa stampa il seguente programma:

class Prova {
  public static void main(String arg[]) {
    Vis a=new Vis(10);
    System.out.println(a.primo(3));
  }
}

Esercizio 2

Confrontare l'efficienza del selectionsort e del bubblesort. Non è necessario riportare la descrizione degli algoritmi. Viene invece richiesta una descrizione della differenza di complessità dei due algoritmi.

Esercizio 3

Il seguente metodo dovrebbe ritornare la somma dei nodi di un albero, ma non funziona. Dire perchè non funziona, cosa viene ritornato in realtà, e come andrebbe modificato per farlo funzionare.

  static int sommaAlbero(Albero a) {
    int somma=0;

    if(a==null)
      return somma;

    somma+=a.getDato();
    sommaAlbero(a.getSinistro());
    sommaAlbero(a.getDestro());
    return somma;
  }