// nie ma co usunąć! --GMatrix[v][u]; if(!DiGraph) --GMatrix[u][v]; }

Zliczanie sąsiadów wierzchołka realizujemy przez zsumowanie wartości tj. liczby krawędzi o końcu w wierzchołku Jeżeli obsługujemy graf skierowany funkcja zwróci liczbę krawędzi wychodzących z

unsigned CGraph::Degree(unsigned v) { unsigned Result=0; for(int i=0;i<V;++i) Result+=GMatrix[v][i]; return Result; }

bool CGraph::Search(unsigned v,unsigned u) { if(GMatrix[v][u]>0) return true; else return false; }

Implementacja grafu w C++ (reprezentacja listowa) Definicja klasy CGraph jest niemal taka sama:

class CGraph { unsigned V,E; // liczba wierzcholkow i krawedzi bool DiGraph; // czy digraf? bool MultiGraph; // czy multigraf?

node *vPrev,*vNext,*uPrev,*uNext;

node **GLists; // tablica wskazników na listy wierzchołków

//*******************************************************// public:

CGraph(unsigned _V, bool _di, bool _mu); ~CGraph(); bool Insert(unsigned v,unsigned u); bool Delete(unsigned v,unsigned u); unsigned Degree(unsigned v); bool Search(unsigned v,unsigned u);

Konstruktor rezerwuje pamięć na elementową tablicę wskaźników na listy, oraz ustawia początkowe zawartości list na NULL (graf bez krawędzi).