先序后序和中序遍历

来源:互联网 发布:js 验证码倒计时 编辑:程序博客网 时间:2024/06/07 04:01

二叉树的三种遍历方式:

1先序遍历(前序遍历)

第一步,访问根节点;第二步,先序遍历根节点的左子树;第三步,先序遍历根节点的右子树。即根左右

2中序遍历

第一步,中序遍历根节点的左子树;第二步,访问根节点;第三步,中序遍历根节点的右子树。即左根右

3后序遍历

第一步,后序遍历根节点的左子树;第二步,后序遍历根节点的右子树;第三步,访问根节点。即左右根


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

1)由于先序遍历树的规则是根左右,则先序遍历序列的第一个元素A必为树的根节点。

2)中序遍历为左根右,根据根节点,可以求出左子树包含元素为DGB,右子树包含元素为ECHF

3)根据左子树的先序和中序,递归求解左子树。根据右子树的先序和中序,递归求解右子树。

由上图:

1.1因为左子树的先序是BDG,则左子树的根节点是B。因为中序是DGB,所以左子树是DG,没有右子树。

1.2继续遍历左子树,因为先序是DG,所以根节点是D,因为中序是DG,所以右子树是G。

同理可得ECHF的图。