我有一个创建图表的程序,如下所示
该算法从绿色节点开始并遍历图形。假设已将一个节点(具有 4 个引用 Left、Right、Up 和 Down 的链表类型节点)添加到图像中红点描绘的图形中。为了将新创建的节点与其邻居集成,我需要找到四个对象并将其链接起来,以便保留图形连接性。
以下是我需要澄清的
- 假设所有黄色节点都是空的,并且我没有保留另一个数据结构来映射节点,这是查找新创建节点的邻居是否存在的最有效方法。我知道基本的图搜索算法,如 DFS、BFS 等和最短路径算法,但我认为这些算法中的任何一个都不够有效,因为图可以有大约 10000 个节点并执行图搜索算法(从绿色节点开始)来找到添加新节点时的邻居对我来说似乎计算成本很高。
- 如果无法避免图形搜索,那么最好的替代结构是什么。我想到了一个大型的多维数组。但是,这会浪费内存,并且还存在没有负索引的问题。由于图像中的图形可以向任何方向增长。我对此的解决方案是编写一个单独的类,该类由基于数组的数据结构组成,以描绘负索引。但是,在选择此选项之前,我想知道我是否仍然可以在不解决新结构的情况下解决问题并节省大量返工。
感谢您提供任何反馈并阅读此问题。