LIA - DEIS - Facoltà di Ingegneria - Università di Bologna
Fondamenti di Informatica A - II° Modulo
Corso di laurea in Ing. Informatica (A-E) ed Elettrica - A. A. 2000-2001

Compito 27/03/01 ----- Esercizio di trattamento Liste


Aggiungere alla classe DoubleList un metodo public int somma() che stampi

e restituisca il numero degli elementi della lista.

 

class DListNode {

protected A item; protected DListNode next; protected DListNode prev;

public DListNode(A o) { item = o; next = null; prev = null; }
public DListNode getPrev() { return prev; }
public void setPrev(DListNode prev) { this.prev = prev; }
public DListNode getNext() { return next; }
public void setNext(DListNode next) { this.next = next; }
public A getItem() { return item; }
public double value() { return Math.random() * item.getZ(); }
// random restituisce un valore nel campo 0-1

}

public class DoubleList
{

protected int size;protected DListNode first, last;

public DoubleList() { size = 0; first = last = null; }

public void insert(Object o) {
DListNode node;
o. setZ (size);
node= new DListNode(o);
node.setNext(first); node.setPrev(null);
if (first!=null) first.setPrev(node);
first = node;
if(last==null) last = node; size++;
}

}

public class A {

private String x; private int[] y; private int z;

public void setZ (int i) {z = i;}
public int getZ () {return z;}
public String toString() { return x + y + z;} }

}


Il metodo somma deve seplorare la lista e selezionare per ogni elemento qunato prodotto da value ().

public int somma() {

DListNode temp = first;
double somma = 0;

while (temp.getNext() != null) {
somma += temp.value();
temp = temp.getNext();
}

System.out.println("Elementi nella lista: " + size);
System.out.println("Somma dei valori: " + somma);
return size;

}

Si noti la necessità di muoversi sulla lista (lo statement che assegna con getNext).