Advertisement
iuliaa

grafeu

May 6th, 2020
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.59 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct Nod{
  5.     int cheie;
  6.     int informatie;
  7. }Nod;
  8. typedef struct Arc{
  9.     int index1;
  10.     int index2;
  11. }Arc;
  12. typedef struct Graf{
  13.     int nr_noduri;
  14.     Nod listaNoduri[20];
  15.     int matriceAdiacenta[20][20];
  16. }Graf;
  17.  
  18. void initializareGraf(Graf *g)
  19. {
  20.     g->nr_noduri=0;
  21. }
  22. void initializeazaArc(Graf *g, int index1, int index2)
  23. {
  24.     g->matriceAdiacenta[index1][index2]=0;
  25.     g->matriceAdiacenta[index2][index1]=0;
  26. }
  27. struct Nod creeazaNod(int key, int inf)
  28. {
  29.     struct Nod aux;
  30.     aux.cheie=key;
  31.     aux.informatie=inf;
  32.     return aux;
  33. }
  34. struct Arc creeazaArc(int i, int j)
  35. {
  36.     struct Arc aux;
  37.     aux.index1=i;
  38.     aux.index2=j;
  39.     return aux;
  40. }
  41. void adaugaNod(Graf *g,Nod n)
  42. {
  43.     int i, index=g->nr_noduri;
  44.     g->listaNoduri[index]=n;
  45.     g->nr_noduri++;
  46.     for(i=0;i<g->nr_noduri;i++)
  47.         initializeazaArc(g, i, index);
  48. }
  49.  
  50. void adaugaArc(Graf *g,Arc arc)
  51. {
  52.     g->matriceAdiacenta[arc.index1][arc.index2]=1;
  53.     g->matriceAdiacenta[arc.index2][arc.index1]=1;
  54. }
  55.  
  56. void afiseazaGraf(Graf *g)
  57. {
  58.     int i, j;
  59.     for(i=0;i<g->nr_noduri;i++)
  60.     {
  61.         for(j=0;j<g->nr_noduri;j++)
  62.             printf("%d ", g->matriceAdiacenta[i][j]);
  63.         printf("\n");
  64.     }
  65. }
  66. Graf *graf;
  67. Nod nod1, nod2;
  68. Arc arc1;
  69. int main()
  70. {
  71.     initializareGraf(graf);
  72.     nod1=creeazaNod(0,100);
  73.     nod2=creeazaNod(1,200);
  74.     arc1=creeazaArc(0,1);
  75.     adaugaNod(graf, nod1);
  76.     adaugaNod(graf, nod2);
  77.     adaugaArc(graf, arc1);
  78.     printf("Matricea grafului:\n");
  79.     afiseazaGraf(graf);
  80.     return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement