2016-11-21 15 views
2

У меня есть график с узлами A, B, C и несколькими ребрами между этими узлами.Уникальная пара узлов в графе

Как я могу получить уникальные пары (A, B), (A, C), (B, C)?

Один алгоритм может быть сказать

alreadyVisited = []; 

for left in nodes: 
    for right in nodes: 
    if (left, right) not in alreadyVisited: 
     alreadyVisited.push((left, right)) 
     .. 

, но это наиболее эффективный алгоритм для достижения этой цели?

ответ

2

Вы можете выполнять итерацию узлов и итерации во вложенном цикле только остальными узлами.

var nodes = ['A', 'B', 'C'], 
 
    i, j, 
 
    edges = []; 
 

 
for (i = 0; i < nodes.length - 1; i++) { 
 
    for (j = i + 1; j < nodes.length; j++) { 
 
     edges.push([nodes[i], nodes[j]]); 
 
    } 
 
} 
 

 
console.log(edges);

+0

, которые в основном крест произведение '' a'and b', там вам нужно перебирать все элементы '' Ā' и b'. –

 Смежные вопросы

  • Нет связанных вопросов^_^