Advertisement
GerexD

min feszitofa

Dec 6th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5. struct el
  6. {
  7. int kp,vp,ertek;
  8. } e[50];
  9.  
  10. void feltolt(int &n,int &m,el e[])
  11. {
  12. ifstream f("elek.be");
  13. f>>n>>m;
  14. for(int i=1;i<=m;i++)
  15. f>>e[i].kp>>e[i].vp>>e[i].ertek;
  16. f.close();
  17. }
  18.  
  19. void rendez(int m,el e[])
  20. {
  21. int jo,mm=m;
  22. el x;
  23. do
  24. {
  25. jo=1;
  26. for(int i=1;i<mm;i++)
  27. if(e[i].ertek>e[i+1].ertek)
  28. {
  29. x=e[i];
  30. e[i]=e[i+1];
  31. e[i+1]=x;
  32. jo=0;
  33. }
  34. mm--;
  35. }while(!jo);
  36. }
  37.  
  38. void feszitofa(int n,int m,el e[])
  39. {
  40. int t[20];
  41. for(int i=1;i<=n;i++) t[i]=i;
  42. int koltseg=0,db=0,k=1;
  43. while(db!=n-1) /*amig nem huztam meg n-1 elet*/
  44. {
  45. if(t[e[k].kp]!=t[e[k].vp]) /*ha nem alakul ki kor*/
  46. {
  47. /*meghuzhatom*/
  48. db++;
  49. koltseg=koltseg+e[k].ertek;
  50. cout<<"["<<e[k].kp<<","<<e[k].vp<<"] "<<e[k].ertek<<"; ";
  51. int h=t[e[k].vp];
  52. for(int i=1;i<=n;i++)
  53. if(t[i]==h) t[i]=t[e[k].kp];
  54. }
  55. k++;
  56. }
  57. cout<<endl<<"Koltseg: "<<koltseg;
  58. }
  59.  
  60. int main()
  61. {
  62. int n,m;
  63. feltolt(n,m,e);
  64. rendez(m,e);
  65. for(int i=1;i<=m;i++)
  66. cout<<e[i].kp<<","<<e[i].vp<<","<<e[i].ertek<<"; ";
  67. cout<<endl<<"A feszitofa elei: ";
  68. feszitofa(n,m,e);
  69. return 0;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement