我们如何实现深度首先搜索n-nary树?

时间:2015-12-13 01:20:10

标签: c++ tree tree-traversal

我的目标是在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)
       }
     }

0 个答案:

没有答案