Classi per matrici #2

Matrice sparsa

Si tratta di matrici grandi ma con un gran numero di elementi nulli.
Si può risparmiare spazio e tempo memorizzando solo i valori diversi da zero, con il numero di riga e di colonna, a scapito di un impegno maggiore nell’implementazione dei metodi

public class Elemento
{
   public int riga, colonna;
   public double valore;
   public Elemento(int numRiga, int numColonna, double Valore)
   {
      riga   =numRiga;
      colonna=numColonna;
      valore =Valore;
   }
}
public class MatriceSparsa
{
   private int righe, colonne;
   // un array come contenitore per gli elementi: private Elemento m[];
   // oppure una classe più complessa...        : private Vector m;
   //                                           : ...
   private X m;
   public MatriceSparsa(int numRighe, int numColonne)
   {
      righe  =numRighe;
      colonne=numColonne;
      m=new X();                // crea la struttura vuota
   }
   public void setElemento(int r, int c, double Valore)
   {
      // ...
   }
   public double getElemento(int r, int c)
   {
      // ...
   }
   ...
}