我有一个n-ary树结构。我想以递归方式将分支复制到另一个分支。我该如何实现这一目标。每个节点都具有以下结构
class Node
{
public:
Node();
void insertChild(Node *child);
Node *child(int row);
int childCount();
Node *parent();
};
树中的每个节点都有一个指向其父节点的指针和一个指向其子节点的指针列表。
我有一个节点的复制例程,它是递归,是绊脚石。
void cloneBranch(Node *source, Node *target)
{
for(int child = 0; child < source->childCount(); ++child)
{
Node *node = copy(source->child(child));
target->insertChild(node);
cloneBranch(source->child(child), node);
}
}