Advertisement

二叉树进行深度优先搜索

阅读量:

二叉树的深度优先遍历方式与先序遍历所得到的结果具有一致性。其核心原理是借助栈结构实现,首先将根节点压入栈中。当栈非空时,执行出栈操作并输出当前节点的值,随后依次将该节点的右子树和左子树压入栈中,之后再次判断栈是否为空,并重复上述过程。

具体实施步骤如下:

(1) 将整棵树的根节点压入栈内

(2) 检查栈的状态,若不为空,则执行出栈操作,并将出栈节点的数值进行输出

(3) 将刚刚出栈节点对应的右子树压入到栈中

(4) 接着将该出栈节点对应的左子树压入到栈中

(5) 返回至步骤(2),继续执行循环操作

构建上述树形结构的具体实现方式可参考前文所述的二叉树构建方法。

相关代码示例如下:

复制代码
 // Tree_depth_breadth.cpp : 定义控制台应用程序的入口点。

    
 //
    
  
    
 #include "stdafx.h"
    
 #include <iostream>
    
  
    
 using namespace std;
    
 typedef int type;
    
  
    
 //定义二叉树结

全部评论 (0)

还没有任何评论哟~