Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct Nod{
- int cheie;
- int informatie;
- }Nod;
- typedef struct Arc{
- int index1;
- int index2;
- }Arc;
- typedef struct Graf{
- int nr_noduri;
- Nod listaNoduri[20];
- int matriceAdiacenta[20][20];
- }Graf;
- void initializareGraf(Graf *g)
- {
- g->nr_noduri=0;
- }
- void initializeazaArc(Graf *g, int index1, int index2)
- {
- g->matriceAdiacenta[index1][index2]=0;
- g->matriceAdiacenta[index2][index1]=0;
- }
- struct Nod creeazaNod(int key, int inf)
- {
- struct Nod aux;
- aux.cheie=key;
- aux.informatie=inf;
- return aux;
- }
- struct Arc creeazaArc(int i, int j)
- {
- struct Arc aux;
- aux.index1=i;
- aux.index2=j;
- return aux;
- }
- void adaugaNod(Graf *g,Nod n)
- {
- int i, index=g->nr_noduri;
- g->listaNoduri[index]=n;
- g->nr_noduri++;
- for(i=0;i<g->nr_noduri;i++)
- initializeazaArc(g, i, index);
- }
- void adaugaArc(Graf *g,Arc arc)
- {
- g->matriceAdiacenta[arc.index1][arc.index2]=1;
- g->matriceAdiacenta[arc.index2][arc.index1]=1;
- }
- void afiseazaGraf(Graf *g)
- {
- int i, j;
- for(i=0;i<g->nr_noduri;i++)
- {
- for(j=0;j<g->nr_noduri;j++)
- printf("%d ", g->matriceAdiacenta[i][j]);
- printf("\n");
- }
- }
- Graf *graf;
- Nod nod1, nod2;
- Arc arc1;
- int main()
- {
- initializareGraf(graf);
- nod1=creeazaNod(0,100);
- nod2=creeazaNod(1,200);
- arc1=creeazaArc(0,1);
- adaugaNod(graf, nod1);
- adaugaNod(graf, nod2);
- adaugaArc(graf, arc1);
- printf("Matricea grafului:\n");
- afiseazaGraf(graf);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement