遍历的作用:

它是树结构插入,删除,修改,查找和排序运算的前提,是二叉树一切运算的基础和核心。

遍历二叉树——从根结点触发,按照某种次序依次访问二叉树中所有结点,使得每个结点均被访问一次且仅被访问一次。

前序遍历:

若二叉树为空,则空操作;

若不为空:则

先访问根结点

前序遍历左子树

前序遍历右子树

前序遍历的结果:

A B D E C F G

过程解释:先访问根结点A,然后前序遍历左子树,访问A的左结点即B,然后访问B的左节点D,然后D没有左结点了,就访问B的右节点E,然后左子树遍历完了,开始前序遍历右子树,访问A的右节点C,然后访问C的左节点F,然后F没有左结点了,就访问C的右节点G,然后右子树遍历完了,结束;

代码的方式来实现:

void PreOrderTraverse(TreeNode* node)
{//先访问根结点,然后遍历左子树,最后遍历右子树if(node){printf("%d %s\n",node->data.id,node->data.name);PreOrderTraverse(node->left);PreOrderTraverse(node->right);} }

其他代码在我的文章二叉树的二叉链表的创建,直接把这个放里面就可以运行了

在主函数里加上这两段代码即可

 printf("前序遍历结果:\n");PreOrderTraverse(tree.root); 

二叉树的前序遍历(递归)相关推荐

  1. LeetCode 144. 二叉树的前序遍历(递归)(迭代)(颜色标记法)

    题目描述 给定一个二叉树,返回它的前序遍历. 思路 详见链接 代码 递归法 #class TreeNode: # def __init__(self,x): # self.val = x # self ...

  2. Leetcode题库 144.二叉树的前序遍历(递归 C实现)

    文章目录 解析 代码 解析 前序遍历:先中再左后右 Func函数,接收一个节点,节点非空,则存入val值,并分别遍历其左右子树 ret数组存储每个非空节点的val值 pos为下一个存入ret数组的数据 ...

  3. leetcode144. 二叉树的前序遍历(递归+迭代)

    一:题目 二:上码 1:递归 class Solution {public:void preorder(TreeNode* root,vector<int>&v ) {if(roo ...

  4. 二叉树前序遍历(递归法和迭代法(即非递归法))——C++

    声明:本文原题主要来自力扣力扣,记录此博客主要是为自己学习总结,不做任何商业等活动 本文主要讲解二叉树的前序遍历递归法和迭代法.中序遍历和后序遍历可以参考博主下面两篇博客:二叉树中序遍历(递归法和迭代 ...

  5. [leetcode] 144. 二叉树的前序遍历

    144. 二叉树的前序遍历 递归写法 class Solution {public List<Integer> preorderTraversal(TreeNode root) {List ...

  6. 二叉树的前序遍历,中序遍历,后序遍历

    这三也是经典的二叉树的三种方法 二叉树的前序遍历 递归实现 public class Main4 {static ArrayList<TreeNode> list = new ArrayL ...

  7. 二叉树的前序遍历(C语言)

    我们从两个方向讲解二叉树的前序遍历(递归+迭代) 一.递归 思想: 从根节点开始向其左孩子遍历每经过一个节点记录一下该节点的数值(只在第一次经过该节点时进行记录),当走到NULL时返回上一个节点,然后 ...

  8. python非递归前序遍历二叉树_LintCode66:二叉树的前序遍历(python)

    66. 二叉树的前序遍历 给出一棵二叉树,返回其节点值的前序遍历. 样例 样例 1: 输入:{1,2,3} 输出:[1,2,3] 解释: 1 / \ 2 3 它将被序列化为{1,2,3} 前序遍历 样 ...

  9. 二叉树的层序遍历,前序遍历(递归,非递归),中序遍历(递归,非递归),后续遍历(递归,非递归)

    文章目录 二叉树的层序遍历 前序遍历 递归版本 非递归版本 中序遍历 递归版本 非递归版本 后序遍历 递归版本 非递归版本 二叉树的层序遍历 void printTree(BinaryTree* ar ...

  10. 二叉树前序遍历--递归

    前序遍历的概念:遍历顺序-根左右,从根节点往下查找,先找左子树.直至左子树为空(左子节点逐个入栈.直至左子节点为空),再找右子树(出栈找右子节点)第一次经过节点即打印,直到打印null,往回溯,打印右 ...

最新文章

  1. 【ubuntu+opencv3】ubuntu16.04+qt5+opencv3.2.0编译与安装
  2. Atitit 发帖机系列(7) 词法分析的方法attilax大总结)
  3. CDK上安装kube-dashboard
  4. 响应式多终端挖掘机机械设备展示类网站模板
  5. binlog和redo log的区别
  6. Apollo使用指南(一)普通应用接入指南
  7. linux的centos 怎么安装bzip2
  8. SQL:查询表中各类点数量以及各类点满足某条件数量
  9. matlab在高等数学中的应用,Matlab在高等数学中的若干应用
  10. matlab计算中值 众值,基于GPS运动摄像机数据确定道路圆曲线半径及行车视距的方法与流程...
  11. n阶乘计算器 超大数 理论可计算8位数以内的阶乘数
  12. 【赠书福利】人工智能发展的三驾马车
  13. 机器学习(二)线性模型——线性回归、对数几率回归、线性判别分析
  14. 纯流量卡(物联卡)的套路,你了解多少
  15. 树形数据结构和扁平数据相互转换
  16. JavaWeb练习题(含答案)
  17. 分享郑州买房后转LPR贷款利率带来的效益
  18. Arduino简单实例之五_红外避障传感器模块
  19. [案例2-1]商品入库
  20. 怎么在一个领域搜索相关论文?

热门文章

  1. 转载001--机器学习中的很多词语
  2. 《十二生肖的文创(下)》|看毛球科技如何玩转NFT文创新理念
  3. 写给小白的Python之016:面向对象-魔法方法
  4. Excel的按钮无法删除怎么办
  5. 路由器wds桥接方法-解决开发板、windows、ubuntu互ping问题
  6. IDEA中文显示口口口口口...解决方法
  7. LinkedList 基本使用
  8. 【原创】modb 功能设计之“支持部分MySQL客户端协议”-1
  9. 脱单盲盒H5版本,配置七牛云教程,脱单盲盒交友2.0.1版教程
  10. iqooneo3 如何不用vivo账号下载外部应用_iqooneo3和小米10pro游戏性能哪个好 综合对比告诉你答案...