У меня есть массив (myArray
) пользовательских объектов (MyObject
).Каждый объект в массиве подключается как минимум к одному другому объекту в массиве (см. Код ниже). Я пытаюсь найти способ определить, все ли объекты в myArray
связаны друг с другом.
class MyObject {
var id: Int = 0
var connectedIds: [Int] = []
}
Если myArray
содержит 5 элементов (A
, B
, C
, D
, E
; A.id
= 0, B.id
= 1, ...), я хочу определить, все ли пять связаны каким-либо образом.Каждый объект имеет массив с именем connectedIds
из id
объектов, к которым он подключен (он не включает себя).
Например, это будет допустимо:
print(A.connectedIds) // [1]
print(B.connectedIds) // [0, 2]
print(C.connectedIds) // [1, 4]
print(D.connectedIds) // [4]
print(E.connectedIds) // [2, 3]
... но это не так:
print(A.connectedIds) // [1]
print(B.connectedIds) // [0]
print(C.connectedIds) // [3, 4]
print(D.connectedIds) // [2, 4]
print(E.connectedIds) // [2, 3]
Если смотреть графически (игнорировать красный кружок), это нормально:
Но этоне: