二叉树的前序、中序和后序遍历

今天做到阿里巴巴的一道笔试题,关于二叉树的遍历序列的,原题摘录如下:

某二叉树的先序遍历是12453,中序遍历是42513,那么其后续遍历是?
A 45231
B 42351
C 12345
D 54321
本题答案为A
本题考查的知识点是二叉树前序、中序、后序遍历的相互求法,即如果知道两个的遍历,如何求第三种遍历。
首先,我们看看前序、中序、后序遍历的特性:

  1. 前序遍历(前序遍历):

    1.访问根节点
    2.前序遍历左子树
    3.前序遍历右子树

  2. 中序遍历:

    1.中序遍历左子树
    2.访问根节点
    3.中序遍历右子树

  3. 后序遍历:

    1.后序遍历左子树
    2.后序遍历右子树
    3.访问根节点

以本题为例简单说明:先序遍历是 12453 依据先序遍历的特性:先序是先访问根节点 所以1是二叉树的根节点,后序遍历是先访问左子树和右子树,后访问 425**1**3,在1的左边的是二叉树的左子树425,1右边的3是二叉树的右子树,右子树只有一个节点,所以可以先构造出一个二叉树为
1
3(1的右子树)
再看先序遍历 1 245 3和后序遍历**425***1*3,2是左子树的根节点,在后序遍历中 2在4和5的中间 ,所以 4是2的左子树,5是2的右子树,构造出的二叉树为:
1
21的左子树) 3(1的右子树)
4 (2的左子树) 5(2的右子树)

所以后序遍历序列为 45231
本题答案为A
如果给出后序遍历和中序遍历来求前序遍历的分析也是一样。

你可能感兴趣的:(数据结构)