美文网首页
数据结构: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叉树的遍历 N叉树的前序遍历 N叉树的后序遍历 N叉树的层序遍历 二叉树 鉴于递归法遍历比较简单,就不重复写了 ...

  • Python实现深度优先与广度优先

    二叉树的两种遍历是数据结构的经典考察题目, 广度遍历考察队列结构, 深度遍历考察递归 二叉树 深度优先 先序遍历(...

  • 已知二叉树的前序遍历和中序遍历,如何得到它的后序遍历?

    在前文数据结构:二叉树的原理及java实现中,我们已经了解了二叉树的原理及二叉树的三种遍历方式,假设父节点是N,左...

  • 算法系列--二叉树的三种遍历的六种实现

    0. 二叉树是常见的数据结构,二叉树常见的遍历方式有前序遍历,中序遍历和后序遍历。前序遍历就是中-左-右节点的顺序...

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

    一、深度优先遍历算法 深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树...

  • 二叉树的遍历(完结)

    二叉树的三种常用遍历方式 学习过数据结构的同学都清楚,除了层序遍历外,二叉树主要有三种遍历方式: 1. 先序遍历...

  • 二叉树的Morris遍历

    前言 前面已经进行过二叉树的递归遍历和迭代遍历,在前两种遍历中,二叉树遍历的空间复杂度都是O(n),这是因为不管是...

  • IOS基础知识-算法与数据结构篇

    数据结构 通常可以分为四类: 数据结构的存储方式: 链表可分为: 什么是树 什么是二叉树 二叉树遍历 在二叉树的一...

  • [LeetCode] 589. N叉树的前序遍历

    589. N叉树的前序遍历给定一个 N 叉树,返回其节点值的前序遍历。例如,给定一个 3叉树 :3叉树返回其前序遍...

  • 2019-03-11 Day64 待提高

    1.#### 589. N叉树的前序遍历给定一个 N 叉树,返回其节点值的前序遍历。 例如,给定一个 3叉树 : ...

网友评论

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

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