Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.22 KB | None | 0 0
  1. #define NRMAXNODURI 64
  2. #include <stdio.h>
  3. typedef atruct
  4. int nrNoduri;
  5. char tabChei[NRMAXNODURI]
  6. int tabVizitat [NRMAXNODURI]
  7. char matAdiacenta [NRMAXNODURI] [NRMAXNODURI]
  8. Graf
  9. typedef struct
  10. int nrElemente;
  11. int tabElemente [NRMAXNODURI];
  12. Coada;
  13. void initializare (Graf &g)
  14. int i.j
  15. g.nrNoduri-0;
  16. for (i-0;i<NRMAXNODURI;i++)
  17. g.tabChei [i] o
  18. g. tabVizitat [i] =0;
  19. }
  20. for i-0;1<NRMAXNODURI;i++
  21. for (j0; j<MRMAXNODURI:j++
  22. t
  23. g.mat Adiacenta [i] [jl-o;
  24. void reinitializare (Graf &g)
  25. f
  26. int i
  27. for (i-0; i<NRMAXNODURI; i++)
  28. g.tabVizitat [i]-0;
  29. void afisare (Graf g)
  30. int i.j
  31. printf("\nLista de chei:\n";
  32. for (i-0;i<g. nrNoduri;i++)
  33. printf(%c .g.tabChei [i] )
  34. printf ("\nMatricea de adiacenta:\n");
  35. for (i-0;1<g nrModuri;i++)
  36. for j-0;j<g.nrNoduri:j++
  37. t
  38. printf("%d ",g.mat Adiacenta [il [jl)
  39. printf(\n")
  40. void adaugallod(Graf &g, char cheie)
  41.  
  42. g.tabChei[g.nrNoduri]- cheie
  43. g.nrNoduri++
  44. void adaugaArc(Graf &g,int index1,int index2)
  45. g.matAdiacentalindex1] [index2]-1;
  46. g.matAdiacentalindex2] [indexi] -1;
  47. void stergeArc(Graf &g,int indexi,int index2)
  48. g matAdiacenta[index1] [index2] -0;
  49. g.matAdiacentalindex2] [index 1] -o
  50. void traverseazaInAdancime 2 (Graf &g,int indexlod)
  51. int i
  52. if g.tabVizitat [indexNod])
  53. printf ("%c " ,g.tabChei [indexNod]);
  54. g.tabVizitat [indexNod]-1;
  55. for (i-o; i<g.nrNoduri;i++)
  56. t
  57. if (g.matAdiacenta [indexNod] [i])
  58. traverseazaInAdancime2 (g,i)
  59. }
  60. void traverseazaInAdancime (Graf g)
  61. int i
  62. printf("\nTraversare in adancime:n");
  63. for (i-0;i<g.nrNoduri;i++ )
  64. (g.tabVizitat [il-- 0 )
  65. if
  66. traverseazaInAdancime2(g,i)
  67. printf ("\n")
  68. printf ("\n")
  69. void initializare (Coada &coada)
  70. t
  71. int i
  72. for i0;i<RMAXNODURI, i++
  73. coada.tabElemente [i]--1
  74. coada.nrElemente- 0 ;
  75. void adauga (Coada &coada,int indexNod)
  76. //printf("Adaugam %dn",indexNod)
  77. coada.tabElemente [coada.nrElemente+ +] = indexod
  78. int scoate (Coada &coada)
  79.  
  80. int i
  81. int indexlod-coada.tabElemente [0]
  82. for i-0;i<coada.nrElemente;i++)
  83. coada.tabElemente[i] coada.tabElement e[i+1]
  84. coada.nrElemente--
  85. //printf("Scoatem %d\n",inderNod)
  86. return indexlod
  87. int vida(Coada coada)
  88. return coada. nrElemente- -0
  89. void traverseazaPrinCuprindere2(Graf bg, int indexNod)
  90. int i
  91. Coada coada;
  92. initializare(coada);
  93. adauga(coada, indexMod);
  94. g. tabVizitat [indexNod] 1;
  95. do
  96. indexNod-scoat e(coada))
  97. printf"%c ".g. tabChei [indexNod]);
  98. for i-0; ig.nrNoduri; i++)
  99. if (g.matAdiacenta [indexNod] [il & (g.tabVizitat [i])
  100. g.tabVizitat [i] -1;
  101. adauga (coada,i)
  102. while (vidacoada))
  103. void traverseazaPrinCuprindere (Graf g)
  104. int i
  105. printf ("\nTraversare prin cuprindere:\n")
  106. for (i-0;i<g, nrModuri;i++
  107. {
  108. if g.tabVizitat [i]o)
  109. traverseazaPrinCuprindere2(g, i)
  110. printf("\n")
  111. printf ("\n);
  112. }
  113. int main
  114. Graf g
  115. initializare (g)
  116. adaugalod (g, A
  117. adaugaNod (g, B)
  118. adaugaNod (g, 'C'
  119. adaugaNod (g, 'D
  120.  
  121. adaugalod (g, 'E
  122. adaugaNod (g, F
  123. adaugaNod (g, 'G'
  124. adaugaNod (g,'H)
  125. adaugalod (g, I
  126. adaugaNod (g, J
  127. adaugaNod (g, 'K')
  128. adaugaNod (g, 'L')
  129. adaugalod (g, M')
  130. adaugaArc (g,0,1)
  131. adaugaArc (g,0,2)
  132. adaugaArc (g,0,3)
  133. adaugaArc (g,0.4)
  134. adaugaArc (g,1,2)
  135. adaugaArc (g,1,3)
  136. adaugaArc (g,2,3)
  137. adaugaArc (g,4,5)
  138. adaugaArc (g,5,6)
  139. adaugaArc (g,7,8)
  140. adaugaArc (g,9.10)
  141. adaugaArc (g,11,12)
  142. traverseazaInAdancime (g);
  143. reinitializare(g)
  144. traverseazaPrinCuprindere(g)
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement