У меня есть массив объектов.Как создать ориентированный граф из массива элементов?
input = [
{id:1, from:h, to:l},
{id:2, from:b, to:e},
{id:3, from:p, to:q},
{id:4, from:e, to:h},
{id:5, from:e, to:g},
{id:6, from:l, to:m},
{id:7, from:m, to:k},
{id:8, from:k, to:i},
{id:9, from:g, to:i},
{id:10, from:i, to:b}
]
элементов в массиве сортируется по атрибуту под названием id
.
Атрибут id
является уникальным.
Узлы на графике должны быть соединены атрибутами from
и to
каждого элемента массива.
Пример (не основаны в приведенном выше массиве):
{id:1, from:a, to:b} --> {id:2, from:b,to:c} --> {id:3, from:c, to:a}
Выход алгоритма должен быть таким:
output = [
{id:1, from:h, to:l, next: [object with id = 6]},
{id:2, from:b, to:e, next: [object with id = 4, object with id = 5]},
{id:3, from:p, to:q, next: [null]},
{id:4, from:e, to:h, next: [object with id = 1]},
{id:5, from:e, to:g, next: [object with id = 9]},
{id:6, from:l, to:m, next: [object with id = 7]},
{id:7, from:m, to:k, next: [object with id = 8]},
{id:8, from:k, to:i, next: [object with id = 10]},
{id:9, from:g, to:i, next: [object with id = 10]},
{id:10, from:i, to:b, next: [object with id = 2]}
]
Таким образом, конечный ориентированный граф должен выглядеть следующим образом:
Так у вас есть список ребер, который представляет собой ориентированный граф структуру данных. Какой у Вас вопрос? Как сделать это графически? – wvdz
Я могу сказать, что ваше изображение неверно. Метки узлов должны быть строчными буквами. Идентификатор - это идентификатор ребер. – wvdz
Благодаря @wvdz, то, что я хочу получить, - это список, набор или любой другой набор, более подходящий для тех же объектов в массиве, каждый из которых указывает на другой объект или объекты на основе атрибутов 'from' и' to'. –