• 1.摘要
  • 2.基本信息
  • 3.算法实现
  • 3.1.遍历方案
  • 3.2.遍历命名
  • 3.3.遍历算法
  • 3.4.中序算法实现
  • 3.5.中序投影法
  • 3.6.层序遍历
  • 4.递归实现
  • 4.1.前序遍历
  • 4.2.中序遍历
  • 4.3.后序遍历
  • 4.4.注意事项

二叉树遍历

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

基本信息

  • 中文名

    二叉树遍历

  • 外文名

    Binary Tree Traversal

  • 一棵非空的二

    由根结点及左右子树这三个基本

  • 叉树

    部分组成

  • 在任一给定结

    可以按某种次序执行三个操作

算法实现

遍历方案

二叉树遍历

从二叉树的递归定义可知,一棵非空的二叉树由根结点及左、右子树这三个基本部分组成。因此,在任一给定结点上,可以按某种次序执行三个操作:

⑴访问结点本身(N),

⑵遍历该结点的左子树(L),

⑶遍历该结点的右子树(R)。

以上三种操作有六种执行次序:

NLR、LNR、LRN、NRL、RNL、RLN。

注意:

前三种次序与后三种次序对称,故只讨论先左后右的前三种次序。

遍历命名

根据访问结点操作发生位置命名:

① NLR: 前序遍历(Preorder Traversal 亦称(先序遍历))

——访问根结点的操作发生在遍历其左右子树之前。

② LNR: 中序遍历(Inorder Traversal)

——访问根结点的操作发生在遍历其左右子树之中(间)。

③ LRN: 后序遍历(Postorder Traversal)

——访问根结点的操作发生在遍历其左右子树之后。