我正在研究一个问题,并在C++中实现了一种算法。该算法需要一个类似于2D数组(例如20x20数组)的数据结构。主要区别在于每个单元必须连接到它周围的八个近邻(即上,下,左,右和四个角)。
每个成员的状态将根据邻居的数据变化而变化。因此,每个单元都动态增长。每个单元都需要不断检查其所有邻居的数据。
基于该要求,我认为该数据结构是圆形的,像圆环或百吉饼一样,没有边缘,因此每个单元格都相互连接。
关于这种数据结构的表示有什么想法吗?我正在考虑使用邻接链表图,其中每个成员都包含周围八个邻居的链表。你怎么看?我在正确的轨道上吗?
最佳答案
寻找生命游戏的实现,该实现使用零和一。除非您通过将解决方案收敛到每次迭代的一组约束条件来做非常复杂的事情,否则您每次都将遍历数组,引用最后一个完整的代,并在每次循环结束时更新所有内容以创建新一代。