Ciao, mi potreste aiutare per piacere? Devo progettare una matrice di adiacenza. Il codice che ho scritto e il seguente:

codice:
    public class AdjacencyMatrix: Graph
    {

        protected ArrayList matrix;
        private EA.Repository modelRepository; // progetto EA corrente

        public AdjacencyMatrix(EA.Repository repository)
        {
            
            for (int i = 0; i < nodeList.Count; i++) //inizializzare le righe della matrice
            {
               matrix.Add(new ArrayList());

                for (int j=0; j< nodeList.Count; j++)
                {
                    ((ArrayList)matrix[i]).Add(new ArrayList());
                }

            }
                        
            //inizializzazione dei nomi delle classi
            for (int i = 0; i < matrix.Count; i++)
            {
                if (i == 0)
                {
                    ((ArrayList)this.matrix[i]).Add("");

                    foreach (Node node in nodeList)
                    {
                        ((ArrayList)matrix[i]).Add(node.className);
                    }
                }

                //inizializzazione dei valori della matrice
                for (int j = 1; j < ((ArrayList)matrix[i]).Count; j++)
                {
                    for (int k = 1; k < ((ArrayList)((ArrayList)matrix[i])[j]).Count; k++)

                        ((ArrayList)((ArrayList)matrix[i])[j])[k] = 0;
                }
            }

            //definizione dell'esistenza del link
            foreach (Link link in linkList)
            {
                for (int i = 0; i < matrix.Count; i++)
                {
                    if (link.startNodeId.Equals((String)matrix[0]))
                    {
                        for (int j = 1; j < ((ArrayList)matrix[i]).Count; j++)
                        {
                            if (link.endNodeId.Equals((String)((ArrayList)matrix[0])[j]))
                            {
                                ((ArrayList)matrix[0])[j] = 1;
                                break;
                            }
                        }
                    }
                }
            }
        }     
    }
}
dove i nodelist e linklist, sarebbero i nodi e i link di mio interesse, nel mio caso i nodi soltanto le classi, componenti e package all'interno di un diagramma UML e i link solo di un certo tipo.
Andrebbe bene il codice scritto cosi?

Grazie mille per l'aiuto.