Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define NRMAXNODURI 64
- #include <stdio.h>
- typedef atruct
- int nrNoduri;
- char tabChei[NRMAXNODURI]
- int tabVizitat [NRMAXNODURI]
- char matAdiacenta [NRMAXNODURI] [NRMAXNODURI]
- Graf
- typedef struct
- int nrElemente;
- int tabElemente [NRMAXNODURI];
- Coada;
- void initializare (Graf &g)
- int i.j
- g.nrNoduri-0;
- for (i-0;i<NRMAXNODURI;i++)
- g.tabChei [i] o
- g. tabVizitat [i] =0;
- }
- for i-0;1<NRMAXNODURI;i++
- for (j0; j<MRMAXNODURI:j++
- t
- g.mat Adiacenta [i] [jl-o;
- void reinitializare (Graf &g)
- f
- int i
- for (i-0; i<NRMAXNODURI; i++)
- g.tabVizitat [i]-0;
- void afisare (Graf g)
- int i.j
- printf("\nLista de chei:\n";
- for (i-0;i<g. nrNoduri;i++)
- printf(%c .g.tabChei [i] )
- printf ("\nMatricea de adiacenta:\n");
- for (i-0;1<g nrModuri;i++)
- for j-0;j<g.nrNoduri:j++
- t
- printf("%d ",g.mat Adiacenta [il [jl)
- printf(\n")
- void adaugallod(Graf &g, char cheie)
- g.tabChei[g.nrNoduri]- cheie
- g.nrNoduri++
- void adaugaArc(Graf &g,int index1,int index2)
- g.matAdiacentalindex1] [index2]-1;
- g.matAdiacentalindex2] [indexi] -1;
- void stergeArc(Graf &g,int indexi,int index2)
- g matAdiacenta[index1] [index2] -0;
- g.matAdiacentalindex2] [index 1] -o
- void traverseazaInAdancime 2 (Graf &g,int indexlod)
- int i
- if g.tabVizitat [indexNod])
- printf ("%c " ,g.tabChei [indexNod]);
- g.tabVizitat [indexNod]-1;
- for (i-o; i<g.nrNoduri;i++)
- t
- if (g.matAdiacenta [indexNod] [i])
- traverseazaInAdancime2 (g,i)
- }
- void traverseazaInAdancime (Graf g)
- int i
- printf("\nTraversare in adancime:n");
- for (i-0;i<g.nrNoduri;i++ )
- (g.tabVizitat [il-- 0 )
- if
- traverseazaInAdancime2(g,i)
- printf ("\n")
- printf ("\n")
- void initializare (Coada &coada)
- t
- int i
- for i0;i<RMAXNODURI, i++
- coada.tabElemente [i]--1
- coada.nrElemente- 0 ;
- void adauga (Coada &coada,int indexNod)
- //printf("Adaugam %dn",indexNod)
- coada.tabElemente [coada.nrElemente+ +] = indexod
- int scoate (Coada &coada)
- int i
- int indexlod-coada.tabElemente [0]
- for i-0;i<coada.nrElemente;i++)
- coada.tabElemente[i] coada.tabElement e[i+1]
- coada.nrElemente--
- //printf("Scoatem %d\n",inderNod)
- return indexlod
- int vida(Coada coada)
- return coada. nrElemente- -0
- void traverseazaPrinCuprindere2(Graf bg, int indexNod)
- int i
- Coada coada;
- initializare(coada);
- adauga(coada, indexMod);
- g. tabVizitat [indexNod] 1;
- do
- indexNod-scoat e(coada))
- printf"%c ".g. tabChei [indexNod]);
- for i-0; ig.nrNoduri; i++)
- if (g.matAdiacenta [indexNod] [il & (g.tabVizitat [i])
- g.tabVizitat [i] -1;
- adauga (coada,i)
- while (vidacoada))
- void traverseazaPrinCuprindere (Graf g)
- int i
- printf ("\nTraversare prin cuprindere:\n")
- for (i-0;i<g, nrModuri;i++
- {
- if g.tabVizitat [i]o)
- traverseazaPrinCuprindere2(g, i)
- printf("\n")
- printf ("\n);
- }
- int main
- Graf g
- initializare (g)
- adaugalod (g, A
- adaugaNod (g, B)
- adaugaNod (g, 'C'
- adaugaNod (g, 'D
- adaugalod (g, 'E
- adaugaNod (g, F
- adaugaNod (g, 'G'
- adaugaNod (g,'H)
- adaugalod (g, I
- adaugaNod (g, J
- adaugaNod (g, 'K')
- adaugaNod (g, 'L')
- adaugalod (g, M')
- adaugaArc (g,0,1)
- adaugaArc (g,0,2)
- adaugaArc (g,0,3)
- adaugaArc (g,0.4)
- adaugaArc (g,1,2)
- adaugaArc (g,1,3)
- adaugaArc (g,2,3)
- adaugaArc (g,4,5)
- adaugaArc (g,5,6)
- adaugaArc (g,7,8)
- adaugaArc (g,9.10)
- adaugaArc (g,11,12)
- traverseazaInAdancime (g);
- reinitializare(g)
- traverseazaPrinCuprindere(g)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement