Witam.
Mam następujący problem. Nie umiem zaimplementować grafu na liście przylegania. Mam książkę i na macierzy przylegania rozumiem to bez problemu jednak, nie wiem jak zbudować konstruktor dla listy list oraz metody dodania wierzchołka i krawędzi. Na macierzy przylegania wygląda to następująco:

public class Wierzcholek {
    public char etykieta;
    public boolean odwiedzony;
    public Wierzcholek(char etykieta){
        this.etykieta = etykieta;
        odwiedzony = false;
    }
}

public class Graf {
    private final int MAX_WIERZCHOLKOW = 10;
    private Wierzcholek tablicaWierzcholkow[];
    private int macierzPrzylegania[][];
    private int iloscWierzcholkow;

    public Graf(){
        tablicaWierzcholkow = new Wierzcholek[MAX_WIERZCHOLKOW];
        macierzPrzylegania = new int[MAX_WIERZCHOLKOW][MAX_WIERZCHOLKOW];
        iloscWierzcholkow = 0;

        for(int i=0;i<MAX_WIERZCHOLKOW;i++){
            for(int j=0;j<MAX_WIERZCHOLKOW;j++){
                macierzPrzylegania[i][j] = 0;
            }
        }   
    }

    public void dodajWierzcholek(char etykieta){
        tablicaWierzcholkow[iloscWierzcholkow++] = new Wierzcholek(etykieta);
    }

    public void dodajKrawedz(int poczatek, int koniec){
        macierzPrzylegania[poczatek][koniec] = 1;
        macierzPrzylegania[koniec][poczatek] = 1;
    }

} // koniec klasy Graf

Jednak jak zrobić to na liście list?:)