// 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).