我正在使用不相交集和联合/查找操作制作一个 C++ 迷宫程序。
我有一个MakeSet(int x)
函数,它为迷宫中的每个整数元素 x 创建一个新节点。(即1 to 16
对于 4x4 迷宫)。因此,最初每个元素都在自己的集合中。
我的 MakeSet 看起来像这样
void Maze::MakeSet(int x)
{
Node *root = new Node;
root->label = x;
root->parent = NULL;
}
但是在 CreateMaze() 函数中,我必须多次调用 MakeSet 才能将所有元素最初放入它们自己的集合中。因此,根将继续被覆盖。如何动态分配许多不同的节点?我应该把它们分开放在一个数组中吗?