我的目标是在n-nary树中插入新节点使其成为首选节点的子节点。要做到这一点,我必须为n-nary树实现find操作。现在我需要能够使用“深度优先搜索”和“广度优先搜索”递归来做到这一点!
这是我的尝试我将为任何贡献感到高兴。
所以在进入DFS函数之前,我使用了一个带有root的堆栈。
struct TreeNode{
TreeNode* firstChild;
TreeNode* NextSibling;
string element;
}
Stack.push(root);//before going into the DFS
void DFS(Node* n,string ParentStr, string NewStr){
if(Stack.top()==NULL)
return;
TreeNode* node = Stack.top();
Stack.pop();
if(node->element == ParentStr){
insert new elemnt as its Child of node as base case;//Implemented()
return;
}
if(node->nextSibling!=NULL){
node = node->nextSibling;
if(node->firstChild!=NULL)
Stack.push(node);
DFS(node,string ParentStr, string NewStr)
}
}