Documente Academic
Documente Profesional
Documente Cultură
Verificarea Conexitati Unui Graf
Verificarea Conexitati Unui Graf
2 Enuntul problemei
Se da un graf cu n varfuri prin matricea sa de adiacenta. Sa se verifice daca graful
de mai sus este conex sau nu.
1 5
2 3 6
7
4
8
G=(X,U) X={1,2,3,4,5,6,7,8}
U={[1,2],[1,4],[1,3],[2,3],[5,6],[6,7],[6,8],[7,8]}
G1=(X1,U1) X1={1,2,3,4}
U1={[1,2],[1,4],[1,3],[2,3]}
G2=(X2,U2) X2={5,6,7,8}
U2={[5,6],[6,7],[6,8],[7,8]}
Observatie. Daca un graf are mai mult de o componenta conexa atunci este neconex.
Un graf conex are o singura componenta conexa.
Graful este conex daca prin explorarea in largime se viziteaza toate varfurile.
Vom imparti rezolvarea problemei in mai multe subprograme
Procedura initializari
-citeste matricea de adiacenta din fisierul text ,,GRAF.DAT” aflat sub forma
n
a11,……….,a1n
……………..
an1,………..,ann
Functia nevizitat
-verifica daca in urma explorari grafului cu functia BF mai raman varfuri
din G neexplorate.
Variabila ,,Neexplorat” se initializeaza cu –1 daca exista un varf neexplorat, atunci va
lua valoarea primului astfel de varf. Se exploreaza vectorul vizitate incepand cu prima
pozitie j:=1
cat timp j<=n si neexplorat=-1 executa
daca varful j este nevizitat (vizitate[j]=0) atunci
Neexplorat:=j
j:=j+1
daca vizitate[j]=0 atunci Neexplorat:=j si ciclul while se incheie.
Functia returneaza j, care este primul varf neexplorat
Pentru j=1 la n executa
Daca vizitate[j]=1 atunci au fost toate varfurile explorate si functia returneaza –1
Functia BF –returneaza TRUE daca graful este conex si FALSE altfel
Cum se codifica acest lucru?
Daca functia nevizitat returneaza –1 graful este conex si functia BF returneaza TRUE
Programul principal
1 afiseaza initializarile
2 matricea de adiacenta
3 apeleaza functia BF