//definirea tipului nod
typedef TIP_NODG
{
int cheie;
... informaţii
} tip_nodg;
ntip_nodg nod[Nmax];
//tabloul de noduri
//Nmax este numărul maxim de noduri
int arc[N max] [N max];
//matricea de adiacenţă
Adăugarea unui nod cu cheia key:
int i;
nod[N].cheie=key;
//adăugăm nodul N+1
for(i=0;i <= N;i++)
arc[i][N]=arc[N][i]=0;
//iniţalizarea cu o a conexiunilor cu celelalte noduri
N++;
//incrementarea numărului de noduri
În cazul în care este importantă poziţia nodului ce se inserează în tablou, inserţia nu se va face pe ultima poziţie, ci în poziţia dorită poz:
void Insereaza_nod(int poz, int key)
{
int i,j;
//incrementarea numărului de noduri
N++;
for(i=N-1;i >= poz; i--)
{
//mutarea liniilor
arc[i+1][j]=arc[i][j];
//mutarea coloanelor
arc[j][i+1]=arc[i][j];
}
}
//setarea cheii nodului
nod[poz].cheie=key;
for(i=0;i < N;i++)
//inițializarea cu 0 a conexiunilor cu celelalte noduri
arc[i][poz]=arc[poz][i]=0;
}
Căutarea unui nod într-un graf:
//funcţia de căutare a unui nod cu cheia key
int cauta_nod(int key)
{
int i;
for(i=0;i < N;i++)
//returnează poziţia în cazul în care cheia a fost găsită
if(k == nod[i].cheie)
return(i);
//returnează -1 dacă cheia nu a fost găsită
return(-1);
}
Ştergerea unui nod din graf presupune eliminarea lui din tabloul de noduri
void sterg_nod(int poz)
{
int i;
//aducem nodul N în locul celui pe care il suprimăm
nod[poz]=nod[N-1];
for(i=0;i < N;i++)
//suprascrie linia
arc[poz][i]=arc[N-1][i];
for(i=0;i < N;i++)
//suprascrie coloana
arc[i][poz]=arc[i][N-1];
//decrementăm numărul de noduri
N--;
}