Я конвертирую VB6 в C # и хочу сделать свою структуру данных, которая содержит значения и отношения, более эффективной. В VB у меня есть коллекция значений и другая коллекция отношений между этими значениями с приоритетами для этих отношений. У меня также есть алгоритм, который, когда ему передают набор значений, возвращает все отношения, необходимые для объединения этих значений. Например, допустим, что коллекция значений содержит 1-10, а коллекция отношений содержит
1,2
3,2
5,2
2,8
8,10
9,10
Если бы ввод был 1,9,10, возвращаемые отношения были бы -
1,2
2,8
8,10
9,10
Поскольку может быть несколько путей, будет возвращено наименьшее количество отношений, но есть предостережение о приоритетах отношений. Если отношение имеет более высокий приоритет, то это отношение будет добавлено, а остальные отношения будут добавлены оттуда. Я думаю об использовании структуры данных с несвязным множеством , но я не уверен.
Есть идеи?
Дополнительная информация -
Количество значений обычно будет меньше 100, а отношения меньше 500. Коллекции статичны, и алгоритм будет использоваться снова и снова для поиска путей. Кроме того, я не спрашивал об этом, но будет ли алгоритм в несвязанной структуре данных наиболее эффективным?