Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. typedef {
  2. int from;
  3. int to;
  4. int weight;
  5. } Edge;
  6.  
  7. void swap(Edge *a, Edge *b){
  8. Edge *c = a;
  9. a = b;
  10. b = c;
  11. }
  12.  
  13. void sortEdge(Edge edge[], int n){
  14. for(int i=0; i<n-1; i++){
  15. for(int j=0; j<n-1; j++){
  16. if(edge[j].weight > edge[j+1].weight){
  17. swap(&edge[j], &edge[j+1]);
  18. }
  19. }
  20. }
  21. }
  22.  
  23. //
  24.  
  25. int main(){
  26.  
  27. int n = 5;
  28.  
  29. Metrix M = createMetrix();
  30. M = addVertex(M);
  31. M = addVertex(M);
  32. M = addVertex(M);
  33. M = addVertex(M);
  34. M = setPath(M, 0, 1, 9);
  35.  
  36. //input
  37. Arr visited = createArr();
  38. PairArr path = createPairArr();
  39.  
  40. Edge edge[100];
  41. sort(edge, n);
  42.  
  43. int i=0;
  44. while(size(visited) < n - 1){
  45. Edge e = edge[i++];
  46. if(contains(visited, e.from) && contains(visited, e.to)) continue;
  47. path = pushPairArr(path, e.from, e.to);
  48. if( ! contains(visited, e.from)) visited = pushArr(visited, e.from);
  49. if( ! contains(visited, e.to)) visited = pushArr(visited, e.to);
  50. }
  51.  
  52. for(int i=0; i<size(path); i++){
  53. cout << path.first[i] << " "<< path.second[i] << " " << getWeight(M,path.first[i], path.second[i]) << endl;
  54. }
  55.  
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement