有一棵二叉排序树按先序遍历得到的序列为:(12,5,2,8,6,10,16,15,18,20)。给出该二叉排序树的中序遍历序列,并详细说明过程
时间: 2023-10-05 17:14:11 浏览: 184
通过观察先序遍历序列,我们可以得到根节点的值为12。同时,我们可以发现5是12的左子节点,16是12的右子节点。
接下来,我们可以从5开始往下构建左子树。在左子树中,2是5的左子节点,8是5的右子节点。接着,我们可以从8开始往下构建右子树,6是8的左子节点,10是8的右子节点。此时,我们已经构建好了整个左子树,中序遍历序列为(2,5,6,8,10)。
接下来,我们回到根节点12,构建右子树。在右子树中,15是16的左子节点,18是16的右子节点。接着,我们可以从18开始往下构建右子树,20是18的右子节点。此时,我们已经构建好了整个右子树,中序遍历序列为(12,15,16,18,20)。
因此,该二叉排序树的中序遍历序列为(2,5,6,8,10,12,15,16,18,20)。
相关问题
有一棵二叉排序树按先序遍历得到的序列为:(12,5,2,8,6,10,16,15,18,20)。回答以下问题:(1)画出该二叉排序树。
以下是该二叉排序树的结构图:
```
12
/ \
5 16
/ \ / \
2 8 15 18
/ \ \
6 10 20
```
其中,根节点为12,左子树为{5,2,8,6,10},右子树为{16,15,18,20}。左子树的根节点为5,左子树为{2},右子树为{8,6,10};右子树的根节点为16,左子树为{15},右子树为{18,20}。以此类推。
2.已知一棵二叉排序树的先序遍历序列为DBACGEF,它的后序遍历序列是什么?要求写出解题过程。
根据二叉排序树的性质,先序遍历的第一个元素是根节点,然后按照左子树小于根节点、右子树大于根节点的规则进行构建。因此,我们可以通过先序遍历序列来确定根节点及其左右子树的范围,然后递归地对左右子树进行相同的操作。
在本题中,先序遍历序列为DBACGEF,第一个元素是D,因此D为根节点。然后我们可以将序列分为D|BACGEF,其中D为根节点,BACGEF为其左子树和右子树的先序遍历序列。接下来,我们可以递归地对左右子树进行相同的操作,直到序列为空或只有一个元素。
对于左子树BACGEF,其最后一个元素F一定是其根节点,因此我们可以将其分为BA|CGEF,其中F为根节点,BA和CGEF为其左子树和右子树的先序遍历序列。同理,我们可以递归地对左右子树进行相同的操作,直到序列为空或只有一个元素。
最终,我们得到的后序遍历序列为ACBFGED。
阅读全文