Учитывая большое n-арное дерево, мне нужно создать рекурсивную функцию, которая печатает всех предков листа, например, где n-арная структура дерева задается как
typedef struct sNaryNode
{
int *data;
int nchild;
struct sNaryNode **child;
} NaryNode;
ВотЯ использовал функцию, но это дает неправильный ответ:
bool printAncestors(NaryNode *root, int *data)
{
int i=0;
if (root == NULL)
return false;
if (root->data == data)
return true;
do
{
auto b=printAncestors(root->child[i], data);
if(b)
{
cout<<*root->data<<" ";
return true;
}
else
i++;
}
while(i<root->nchild);
}