Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let nodes = {
  2.     A: {
  3.         bind: [
  4.             ['B', 2],
  5.             ['C', 10]
  6.         ],
  7.         weight: 0, // Вес самой ноды
  8.         nearest: '', // Близжайшая нода
  9.     },
  10.  
  11.     B: {
  12.         bind: [
  13.             ['A', 2],
  14.             ['D', 20]
  15.         ],
  16.         weight: Infinity,
  17.         nearest: ''
  18.     },
  19.  
  20.     C: {
  21.         bind: [
  22.             ['A', 10],
  23.             ['D', 2]
  24.         ],
  25.         weight: Infinity,
  26.         nearest: ''
  27.     },
  28.  
  29.     D: {
  30.         bind: [
  31.             ['B', 20],
  32.             ['C', 2],
  33.             ['E', 1]
  34.         ],
  35.         weight: Infinity,
  36.         nearest: ''
  37.     },
  38.  
  39.     E: {
  40.         bind: [
  41.             ['D', 1]
  42.         ],
  43.         weight: Infinity,
  44.         nearest: ''
  45.     }
  46. }
  47.  
  48. let keys = Object.keys(nodes);
  49.  
  50. keys.forEach(index => {
  51.     nodes[index].bind.forEach(bind => {
  52.         let name = bind[0];
  53.         let weight = bind[1];
  54.        
  55.         if(nodes[name].weight > nodes[index].weight + weight) {    
  56.             nodes[name].weight = nodes[index].weight + weight;
  57.             nodes[name].nearest = index;
  58.         }
  59.     });
  60. });
  61.  
  62. keys.forEach(key => console.log(`P: ${key}:${nodes[key].nearest} W: ${nodes[key].weight}`));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement