Advertisement
NoHatred0

VerificareGrafEulerian

Apr 17th, 2013
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4. ifstream f("graf.in");
  5. ofstream g("graf.out");
  6.  
  7. int n,m,viz[100],a[100][100],conex=0,gradimpar=0;
  8.  
  9. void citire()
  10. {
  11. int i,x,y;
  12. f>>n>>m;
  13. for(i=1;i<=m;i++)
  14. {
  15. f>>x>>y;
  16. a[x][y]=1;
  17. a[y][x]=1;
  18. }
  19. }
  20. void df(int k)
  21. {
  22. int i;
  23. viz[k]=1;
  24. for(i=1;i<=n;i++)
  25. {
  26. if(a[k][i]==1 && viz[i]==0)
  27. df(i);
  28. }
  29. }
  30. void verificare_conexitate()
  31. {
  32. int i,ok=1;
  33. for(i=1;i<=n;i++)
  34. if(viz[i]==0) ok=0;
  35. if(ok==1) conex=1;
  36. }
  37. int grad(int x)
  38. {
  39. int i,gradnod=0;
  40. for(i=1;i<=n;i++)
  41. {
  42. gradnod=gradnod+a[x][i];
  43. }
  44. return gradnod;
  45. }
  46. void verificare_grade()
  47. {
  48. int i;
  49. for(i=1;i<=n;i++)
  50. {
  51. if(grad(i)%2!=0)
  52. gradimpar=1;
  53. }
  54. }
  55. int main()
  56. {
  57. citire();
  58. df(1);
  59. verificare_conexitate();
  60. verificare_grade();
  61. if(gradimpar==0 && conex==1)
  62. g<<"Graful este eulerian!";
  63. else g<<"Graful nu este eulerian!";
  64. return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement