5个回答
展开全部
知道先序遍历,就能求出根,知道中序遍历,可知左子树与右子树。因为后序遍历是根-左-右,比如:——
2.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()
A)bdgcefha
B)gdbecfha
C)bdgaechf
D)gdbehfca
答案为 D
因为在先序中,a在第一位,故a是根,那么在中序中在a前的是左子树,在a后的是右子树.在a的左子树dgb中,在前序中b在前,故b是左子树的根,b的左子树是dg,无右子树.依次类推.
思路是:在前序中找根,在中序中分开左右子树.
最后,二叉树的样子是这样的:
a
b c
d e f
g h
这样就能看出来后序.
按这个顺序就能答出来了
2.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()
A)bdgcefha
B)gdbecfha
C)bdgaechf
D)gdbehfca
答案为 D
因为在先序中,a在第一位,故a是根,那么在中序中在a前的是左子树,在a后的是右子树.在a的左子树dgb中,在前序中b在前,故b是左子树的根,b的左子树是dg,无右子树.依次类推.
思路是:在前序中找根,在中序中分开左右子树.
最后,二叉树的样子是这样的:
a
b c
d e f
g h
这样就能看出来后序.
按这个顺序就能答出来了
展开全部
首先,应掌握其方法,先序:中左右;中序:左中右;后序,左右中;
假设该二叉树的先序为:1245637;中序为:4265173;求后序。
看先序,第一位为1,1就为二叉树的第一位。在看中序,可得该二叉树左边为:2,4;右边为:5,7,3,6;将中序分为两部分:2,4与3,5,7,6,这样1的两个子结点为2和3。看中序,4在2前面,4就在2的左边,5和7在3的前面,那么5和7就在3的左边,6在3的右边。最后要确定5和7的位置,看先序,5在7的前面,因此5在3的左边,7在5的左边。由此得树:
如图: 1
/ \
2 3
/ / \
4 5 6
/
7
后序为:4652731
用此方法,若已知两种遍历,就可画出该图,求得第三个遍历
假设该二叉树的先序为:1245637;中序为:4265173;求后序。
看先序,第一位为1,1就为二叉树的第一位。在看中序,可得该二叉树左边为:2,4;右边为:5,7,3,6;将中序分为两部分:2,4与3,5,7,6,这样1的两个子结点为2和3。看中序,4在2前面,4就在2的左边,5和7在3的前面,那么5和7就在3的左边,6在3的右边。最后要确定5和7的位置,看先序,5在7的前面,因此5在3的左边,7在5的左边。由此得树:
如图: 1
/ \
2 3
/ / \
4 5 6
/
7
后序为:4652731
用此方法,若已知两种遍历,就可画出该图,求得第三个遍历
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实就死记住
前序遍历:根 左 右
中序遍历:左 根 右
后序遍历:左 右 根
然后递归就可以了啊
但是求中序遍历的不唯一
比如你要求的给前序遍历和中序遍历
在当前的两个遍历结果中
前序遍历的第一个就是根,然后在中序遍历里找到这个根的位置
那么中序的左面就是左子树,右面是右子树
然后递归分别求左右子树
前序遍历:根 左 右
中序遍历:左 根 右
后序遍历:左 右 根
然后递归就可以了啊
但是求中序遍历的不唯一
比如你要求的给前序遍历和中序遍历
在当前的两个遍历结果中
前序遍历的第一个就是根,然后在中序遍历里找到这个根的位置
那么中序的左面就是左子树,右面是右子树
然后递归分别求左右子树
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-10-16
展开全部
你是要程序还是要题目的答案
要题目的答案的话还请把题目也贴出来吧 题目的话你自己找些题目就可以做出来的
要题目的答案的话还请把题目也贴出来吧 题目的话你自己找些题目就可以做出来的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你学pascal的?我连中序和后序遍历都还搞不懂
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询