Sunteți pe pagina 1din 1

Algoritm de conversie a reprezentrii grafurilor

Reprezentri ale grafelor


Reprezentarea geometric dac aij<>0 atunci
Reprezentarea matriceal u:=u+1
o Matricea de adiacen pentru p:=1,n execut
o Matricea de inciden bpu:=0;
Reprezentarea cu tablouri sfpentru
unidimensionale biu:=1;
o Lista arcelor bju:=-1;
o Lista succesorilor sfdac;
o Lista predecesorilor sfpentru;
sfpentru.
ALGORITM CONVERSIA REPREZENTRII
UNUI GRAF DIN MATRICEA DE ADIACEN A EXEMPLU
N MATRICEA DE INCIDEN B. 2
Reprezentarea matricial
Un graf G=(X,U) se poate reprezenta cu ajutorul 1 1 2 3
matricei de adiacen (vrfuri-vrfuri) sau al 3
matricei de inciden (vrfuri-arce). Fiecare linie
i coloan corespunznd unui vrf sau unui arc MATRICEA DE MATRICEA DE
(muchie) al grafului. ADIACEN 4 INCIDEN
MATRICEA DE ADIACEN 0 1 0 0 1 0 0
Matricea de adiacen este o matrice ptratic, 0 0 1 1 -1 1 1
linia i coloana i corespunznd vrfului i al 0 0 0 0 0 -1 0
grafului. Elementele matricei de adiacen se 0 0 0 0 0 0 -1
definesc astfel:
aij=1, dac (i,j) U Implementare Pascal
0, dac (i,j)U, i,j X program algoritm1;
MATRICEA DE INCIDEN type MATRICE=array[1..20,1..20] of integer;
Matrice de inciden se ataeaz grafelor var a, b:MATRICE;
simple (fr bucle) i a cror mulime de arce s-a n,i,j,u,p:integer;
ordonat, adic s-au numerotat arcele, U={1,2,..., begin
m}. Linia i corespunde vrfului i, iar coloana u write('n=');readln(n);
corespunde arcului u. Deci matricea este de tip for i:=1 to n do
nxm. Elementele matricei de inciden se for j:=1 to n do
definesc astfel: begin
bij= 1, dac exist jX: u=(i,j) write ('a[',i,',',j,']='); readln (a[i,j]);
end;
-1, dac exist jX: u=(j,i) iX, u U.
u:=0;
0 , altfel for i:=1 to n do
ALGORITM conversia reprezentrii unui for j:=1 to n do
graf din matricea de adiacen a n matricea if a[i,j]<>0 then
de inciden b. begin
Fiecare valoare nenul din A definete un arc i u:=u+1;
acestuia i corespunde o coloan n B. Cum for p:=1 to n do
ordinea coloanelor n B nu are importan, se b[p,u]:=0;
poate parcurge matricea A fie pe linii fie pe b[i,u]:=1;
coloane i pentru fiecare valoare nenul gsit b[j,u]:=-1;
se va genera o coloan n matricea B. Indicii de end;
linie i de coloan ai elementului nenul din A sunt for i:=1 to n do
indicii de linii n care noua coloan din B va avea begin
elementele nenule 1 repectiv -1. for j:=1 to u do
write(b[i,j]);
Algoritmul n pseudocod writeln;
Citeste n i A end;
u:=0; readln;
pentru i:=1,n execut end.
pentru j:=1,n execut

S-ar putea să vă placă și