美文网首页
数据结构:n叉树的两种遍历方式

数据结构:n叉树的两种遍历方式

作者: 胡博要毕业 | 来源:发表于2018-10-09 16:33 被阅读0次

    一、深度优先遍历算法

    深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树和图的算法。沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。属于盲目搜索。

    1.1、如何理解呢?

    对于一个n叉树来说,深度优先遍历算法就是从根结点出发,沿着某一颗子树出发不断向下延伸,直到到达叶子结点,然后再以同样的方式访问另外的子树。

    1.2、实现方法

    首先将根节点放入队列中。

    void Tree::Pre_Order_Print()
    {
        if( _root == NULL )
            return;
    
        stack <Tree_Node*> stk;
        stk.push(_root);
    
        while(!stk.empty())
        {
             Tree_Node* cur_node = stk.top();
             stk.pop();
    
             if( cur_node->_children.size() == 0)
             {
                 cout << cur_node -> _value << endl;
             }
             else
             {
                 for( int i = cur_node->_children.size() - 1;  i >= 0;  i--)
                 {
                      stk.push(cur_node->_children[i]);
                 }
             }
        }
    }
    
    

    二、广度优先遍历算法

    相关文章

      网友评论

          本文标题:数据结构:n叉树的两种遍历方式

          本文链接:https://www.haomeiwen.com/subject/rdhyaftx.html