作者castin (调整自己)
看板TransCSI
标题Re: [问题] 关於binary tree如何画
时间Sun Jul 19 16:03:37 2009
前序 JCBADEFIGH
中序 ABCEDFJGIH
前序的顺序就是root、左子树、右子树
中序的顺序就是左子树、root、右子树
从前序给的顺序,你就可以先推断J是此树的root
而将J为root代入中序来看,ABCEDF就是左树、GIH是右树
再看前序第二个是C,表示C为ABCEDF左树的root。
再切成AB左树和EDF右树…(略)
以此类推可推出C的左树。
就变成
J
/
C
/
B
/
A
那继续往推C的右树EDF,前序的下一个是D,将EDF切成左树E和右树F。
而J的左树就完成了!!
即变成
J
/
C
/ \
B D
/ / \
A E F
相信聪明的你以举一反三的方式,就可以完成这棵树喽!!
解为:
J
/ \
C I
/ \ / \
B D G H
/ / \
A E F
再补充一下,这类型的题目解完之後可以验算一下。
也就是自己以图形跑一次前序和中序看看是否为题目的样子喽!!
※ 引述《francis79458 (FC)》之铭言:
: 想请教 如果一个树的题目 给了我 前序 跟 中序
: 那要如何去研究怎麽画出这个树的样子?
: 像是给前序JCBADEFIGH 中序ABCEDFJGIH
: 要如何下手呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.118.165.186
※ 编辑: castin 来自: 122.118.165.186 (07/19 16:06)
1F:推 shieldsky:很详细的解法,大推 08/02 18:42
2F:推 qber36:GREAT 10/20 05:46
3F:推 wawawa123:good!!!! 11/15 01:02