У меня есть программа, которые создают графики, как показано нижеКак найти соседей графа effiiciently
Алгоритм начинается с зеленого цвета узла и пересекает график. Предположим, что узел (узел типа Linked list type с 4 ссылками Left, Right, Up и Down) был добавлен в график, изображенный красной точкой на изображении. Чтобы интегрировать вновь созданный узел с его соседями, мне нужно найти четыре объекта и связать их, чтобы связь между графами сохранилась.
Ниже то, что мне нужно уточнить
- Предположит, что все желтые цветные узлы являются недействительными и не держать структуру других данных для отображения узлов, что является наиболее эффективным способом, чтобы найти существование соседей вновь созданного узла. Я знаю основные алгоритмы поиска графа, такие как алгоритмы DFS, BFS и кратчайшие пути, но я не думаю, что любой из них достаточно эффективен, потому что граф может иметь около 10000 узлов и выполнять алгоритмы поиска графа (начиная с зеленого узла), чтобы найти соседи, когда новый узел добавлен, кажется мне дорогостоящим.
- Если поиск по графу не позволяет избежать того, что является лучшей альтернативной структурой. Я думал о большом многомерном массиве. Однако у этого есть потеря памяти, а также проблема отсутствия отрицательных индексов. Так как график в изображении может расти в любом направлении. Мое решение заключается в том, чтобы написать отдельный класс, который состоит из структуры данных на основе массива для отображения отрицательных индексов. Однако, прежде чем принимать этот вариант, я хотел бы знать, смогу ли я решить проблему без разрешения новой структуры и сэкономить много доработок.
Благодарим вас за отзыв и прочтите этот вопрос.
Мне тоже нравится ваш ответ ... но, к сожалению, я мог выбрать только один из лучших ... – Synex