已知先序遍历和后序遍历求中序遍历

来源:百度知道 编辑:UC知道 时间:2024/07/02 22:50:56
求所有可能的中序遍历的步骤?

前序遍历(DLR)

前序遍历也叫做先根遍历,可记做根左右。

前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。

若二叉树为空则结束返回,否则:

(1)访问根结点

(2)前序遍历左子树

(3)前序遍历右子树

注意的是:遍历左右子树时仍然采用前序遍历方法。

中序遍历(LDR)

中序遍历也叫做中根遍历,可记做左根右。

中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左、右子树时,仍然先遍历左子树,再访问根结点,最后遍历右子树。即:

若二叉树为空则结束返回,否则:

(1)中序遍历左子树

(2)访问根结点

(3)中序遍历右子树。

注意的是:遍历左右子树时仍然采用中序遍历方法。

后序遍历(LRD)

后序遍历也叫做后根遍历,可记做左右根。

后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点。在遍历左、右子树时,仍然先遍历左子树,再遍历右子树,最后访问根结点。即:

若二叉树为空则结束返回,否则:

(1)后序遍历左子树。

(2)后序遍历右子树。

(3)访问根结点。

注意的是:遍历左右子树时仍然采用后序遍历方法。

先判断根,左子树,右子树,再用以上方法构造所有树,就可以了。