二叉树的遍历

所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题(比如:打印节点内容、节点内容加1)。 遍历是二叉树上最重要的操作之一,是二叉树上进行其它运算之基础。

在遍历二叉树时,如果没有进行某种约定,每个人都按照自己的方式遍历,得出的结果就比较混乱,如果按照某种规则进行约定,则每个人对于同一棵树的遍历结果肯定是相同的。如果N代表根节点,L代表根节点的左子树,R代表根节点的右子树,则根据遍历根节点的先后次序有以下遍历方式:

1. NLR:前序遍历(Preorder Traversal 亦称先序遍历)——访问根结点—>根的左子树—>根的右子树。

2. LNR:中序遍历(Inorder Traversal)——根的左子树—>根节点—>根的右子树。

3. LRN:后序遍历(Postorder Traversal)——根的左子树—>根的右子树—>根节点。

由于被访问的结点必是某子树的根,所以N(Node)、L(Left subtree)和R(Right subtree)又可解释为根、根的左子树和根的右子树。NLR、LNR和LRN分别又称为先根遍历、中根遍历和后根遍历。

二叉树的三种遍历方式-前序遍历,中序遍历,后序遍历相关推荐

  1. 二叉树的四种遍历方式——前序、中序、后序、层序遍历(递归+非递归实现)

    如果N代表根节点,L代表根节点的左子树,R代表根节点的右子树,则根据遍历根节点的先后次序有以下遍历方式: 1. NLR:前序遍历(Preorder Traversal 亦称先序遍历)--访问根结点-- ...

  2. 用递归方式实现二叉树先序、中序、后序遍历

    先序遍历:中.左.右 中序遍历:左.中.右 后序遍历:左.右.中 比如下面这科树 1 2       3 4    5   6    7 package com.sangfor.tree;public ...

  3. linux内核 struct page结构的三种存放方式

    目录 page struct的三种存放方式 1) FLATMEM 2) SPARSEMEM 3) SPARSEMEM_VMEMMAP 随着硬件能力的提升,系统内存容量变得越来越大.尤其是在服务器上,过 ...

  4. vue.js三种安装方式

    Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.它不仅易于上手 ...

  5. 二叉树的三种遍历方式:前序遍历、中序遍历和后序遍历

    二叉树的三种遍历方式:前序遍历.中序遍历和后序遍历 参考资料: 二叉树.前序遍历.中序遍历.后序遍历 - 蓝海人 - 博客园 (cnblogs.com) 二叉树 - LeetBook - 力扣(Lee ...

  6. c语言中二叉树中总结点,C语言二叉树的三种遍历方式的实现及原理

    二叉树遍历分为三种:前序.中序.后序,其中序遍历最为重要.为啥叫这个名字?是根据根节点的顺序命名的. 比如上图正常的一个满节点,A:根节点.B:左节点.C:右节点,前序顺序是ABC(根节点排最先,然后 ...

  7. 二叉树的三种遍历方式(递归、非递归和Morris遍历)

    二叉树的三种遍历方式(递归.非递归和Morris遍历) 原文:http://www.linuxidc.com/Linux/2015-08/122480.htm 二叉树遍历是二叉树的最基本的操作,其实现 ...

  8. 详解二叉树的三种遍历方式(递归、迭代、Morris算法)

    详解二叉树的三种遍历方式(递归.迭代.Morris算法) 最重要的事情写在前面:遍历顺序不一定就是操作顺序!!! 递归解法 首先,一颗二叉树它的递归序列是一定的,导致其前中后序不同的原因只不过是访问节 ...

  9. c语言二叉树的遍历菜单系统,C语言二叉树的三种遍历方式的实现及原理

    C语言二叉树的三种遍历方式的实现及原理 发布时间:2020-10-03 19:43:57 来源:脚本之家 阅读:63 作者:看雪. 二叉树遍历分为三种:前序.中序.后序,其中序遍历最为重要.为啥叫这个 ...

  10. 【数据结构】理解二叉树的三种遍历--前序、中序、后序 +层序(简明易懂)

    一.易懂的形象理解 其实从名字就可以很好的理解这三种遍历,我在第二点时候说,但是估计能翻到我的文的同学们之前肯定看过好多类似的了,那咱们换个思路~ 先用我想的一种简单易懂的形象思维理解一下前序.中序. ...

最新文章

  1. 考研最惨专业排行榜,你上榜了吗?
  2. 禁止 Python 子类覆盖父类方法
  3. Azure Stack-1807 版本 配置10分钟、自动部署6小时-我的ASDK第7次实践
  4. perl:正则表达式部分
  5. LAMP网站架构方案分析
  6. matlab图像处理函数
  7. luogu P3241 [HNOI2015]开店
  8. url存在宽字节跨站漏洞_【XSS漏洞】XSS漏洞相关总结v1.0
  9. 多读少写的场景 如何提高性能
  10. 如何解决WORD安全模式错误问题
  11. 机器学习基础(六)贝叶斯统计
  12. 感谢生活--vlink虚拟链路的实现及原理
  13. 网上商城系统面试时怎么说的思路
  14. 微信小程序--小程序及微信生态圈
  15. 挑战全网最全之django系列
  16. 燕十八 mysql_燕十八mysql笔记
  17. 地图经纬度纠偏-所有高德系地图纠偏
  18. Docker之WARNING: IPv4 forwarding is disabled. Networking will not work(虚拟机配置网络异常:IPv4)解决方案
  19. CISSP认证每日知识点和常错题(12月17日)
  20. Android 遥控器组合键的处理

热门文章

  1. TZC 1283: 简单排序 —— 比较排序
  2. 2023年度国家自然科学基金项目开放申报及注意事项
  3. 考研英语近义词与反义词·七
  4. 动手学深度学习:3.5 图像分类初级
  5. ART与Dalvik哪个好用 ART模式和Dalvik模式区别对比分析
  6. Java之模拟人生(一)小明上机
  7. Thinkpad T460P I7 6820HQ版本运算以及显卡能力简单测试
  8. Bootstrap和jQuery炫酷音乐播放器插件
  9. leaflet之家目录
  10. 树莓派安装Lakka打造经典小霸王游戏机