二叉树
某二叉树中序遍历的节点顺序是: BDCE,后序遍历是: DCBE, 则前序遍历结果为()
A. BCDE
B. BDCE
C. ECDB
D. EBCD
答案:D
解答:
1、什么叫前序、中序、后序
一棵二叉树由根结点、左子树和右子树三部分组成,若规定 D、L、R 分别代表遍历根结点、遍历左子树、遍历右子树。
DLR--前序遍历(根在前,从左往右,一棵树的根永远在左子树前面,左子树又永远在右子树前面 )
LDR--中序遍历(根在中,从左往右,一棵树的左子树永远在根前面,根永远在右子树前面)
LRD--后序遍历(根在后,从左往右,一棵树的左子树永远在右子树前面,右子树永远在根前面)
2、思路
2.1 先确认根节点
2.2 再确定左子树和右子树
2.2.1 从左子树中找到左子树的跟,回到2.1步骤开始遍历
2.2.2 从右子树中找到左子树的跟,回到2.1步骤开始遍历
2.3 直到找完,建立完整的树
3.1 先确认根节点
首先根据后序遍历DCBE,根据后续遍历,左右树永远在根节点前面,找到根节点为E
3.2 确定左子树和右子树
根据中序遍历BDCE,中序遍历,根节点永远在右节点树前面,找到左边子节点是BDC,右边没有子节点。
所以树为:
E
BDC
3.3 BDC的中序为BDC,后续为DCB,于是找到根节点为B,右节点为DC,左边没有节点
所以树为
E
B
DC
3.4 DC的后续为DC,所以C为根节点,中序为DC,所以D为左边子节点
最终得到树为:
E
B
C
D
3.5 此树前序遍历结果为:EBCD
欢迎各路侠客多多指教^_^