У меня есть 2D-сетка, определяемая узлами и элементами.Поиск соседей узла/вершины в 2D-сетке
Структура узла: Node ID, X позиция, Y позиция
Структура элемента: Элемент ID, узел 1, узел 2, узел 3, узел 4
Пример 2х2 элементов сетки :
Nodes:
ID X Y
1 0 0
2 0 1
3 0 2
4 1 0
5 1 1
6 1 2
7 2 0
8 2 1
9 2 2
Elements:
ID N1 N2 N3 N4
1 1 2 4 5
2 2 3 5 6
3 4 5 7 8
4 5 6 8 9
N7-----N8-----N9
| | |
| E3 | E4 |
| | |
N4-----N5-----N6
| | |
| E1 | E2 |
| | |
N1-----N2-----N3
Я хранил оба узла и элементы в связанных списках.
Мой вопрос: Как найти соседей (узлов) для произвольного выбранного узла?
Соседи N5, например, были бы N2, N4, N6 и N8.
* Примечание. Этот упрощённый пример элемента 2х2 для пояснения предлагает, что в сетках, с которыми я имею дело, может содержаться несколько тысяч узлов и элементов. Я также смотрел на некоторые концепции теории графов, но я не уверен, какой может быть правильный путь.
Все ли вершины в плоскости (xy-plane)? И покрывают ли они все целые точки в регионе? или они скудны? – TravisJ
@TravisJ Да, они ограничены плоскостью xy. И вершины могут быть разреженными. – user3787097
Являются ли узлы соседними тогда и только тогда, когда они находятся непосредственно над/ниже/справа/слева друг от друга? (нет других узлов между ними). Например, если граф имел только две вершины, один из (0, 0) и один в (1, 1) были бы смежными? Кроме того, знаете ли вы, что ваш график связан? – TravisJ