Re: [问题] 关于二元树的前序、中序、后序追踪法

楼主: minimatsumi (sugar)   2011-04-14 19:10:50
※ 引述《MarkHero (Mark)》之铭言:
: 最近开始读到算法的基础东西了,
: 但是对这从来没碰过的东西总是非常陌生,
: 特别是最近看到的前序、中序、后序追踪的部分,
: 前序追踪法我看了很久才搞懂他的逻辑,
: 但中序就越来越难懂了,上网GOOGLE了一下,
: 发现:
: 左→中→右或是左→根→右,是个关键,
: 但我始终搞不懂一些东西(下面会详述我的问题)
: 网络上有些大大很厉害,写了一些简易的理解法,
: 但我却越看越迷糊(可能我理解力或逻辑性蛮差的吧..)
: 有些特别的记忆法:
: 1.三人成行(那凑不满三人或是其中一人重复怎办?)
: 2.儿子摆两边、爸爸放中间(这勉强看得懂)
: 3.由低到高(这大概是最了解的部分了XD)
: 4.逐步收纳(有时候最上层反而很快就被收进去,为什么@@?)
: 我的问题是这样的
: A
: /  \
: B C
: /  \ / \
: D E F G
: /  \  |
: H I J
中序追踪顺序是:左→中→右
以A为"中"时,HDIBJE是A的"左"小树,FCG是A的右小树。
以B为"中"时,HDI是B的"左"小树,JE是B的"右"小树。
以D为"中"时,H是D的"左"小树,I是D的"右"小树。所以写法是左H中D右I→HDI
要从左边最小的树写起,所以先写 左:HDI 中:B 右:JE
(至于是JE还是EJ要看J是E的左小树还是右小树)
所以应该看成 {[(HDI) B (JE)] A [FCG] }
: 他的中序是这样:HDI B JE A FCG
: 按照规则来说HDI我是完全没问题,
: 但B完以后,按照左中右的概念,应该是BAC才对不是吗!?
: 怎么会突然跳到JE,而且E连结J的地方是直线(书上真的这样画)
: 直线我要怎么看阿(崩溃!!!)
: FCG也没问题!!!!!
: 麻烦各位前辈帮我用简单一点的方式解释一下中序跟后序的规则....
: 我不想在这里就浇熄我对资工的热情阿!!!!!
这样会不会很难懂啊?
作者: GinnyVila (音乐正来自四方)   2011-05-31 19:29:00
讲的好!推一个~~

Links booklink

Contact Us: admin [ a t ] ucptt.com