我遇到了一道期中考试题,四天前出的,但我不理解它!
假设我们已经有了树的中序遍历结果,那么如果是先序遍历,我们如何找出解决方案呢?我有以下例子:当中序遍历结果为E A C K F H D B G
时;
那么先序遍历将返回什么?
a. FAEKCDBHG
b. FAEKCDHGB
c. EAFKHDCBG
d. FEAKDCHBG
谁能以学习的方式帮助我?
编辑: 我知道答案是:FAEKCDHGB。但是这是怎么计算出来的呢?
我遇到了一道期中考试题,四天前出的,但我不理解它!
假设我们已经有了树的中序遍历结果,那么如果是先序遍历,我们如何找出解决方案呢?我有以下例子:当中序遍历结果为E A C K F H D B G
时;
那么先序遍历将返回什么?
a. FAEKCDBHG
b. FAEKCDHGB
c. EAFKHDCBG
d. FEAKDCHBG
谁能以学习的方式帮助我?
编辑: 我知道答案是:FAEKCDHGB。但是这是怎么计算出来的呢?
E A C K F H D B G
预订必须来自以下来源:
a. FAEKCDBHG
b. FAEKCDHGB
c. EAFKHDCBG
d. FEAKDCHBG
| F |
E A C K H D B G
先序遍历中的下一个字符是A
。将包含A
的子树围绕A
分割:
| F |
| A | H D B G
E C K
E
。没有任何要分割的内容。下一个是 K
: | F |
| A | H D B G
E C
K
C
,没有什么需要拆分的。D
: | F |
| A | | D |
E C H B G
K
B
: | F |
| A | | D |
E C H B
K G
我们已经完成了,将不会有更多的拆分。现在在这棵树上运行先序遍历,你会得到:
F A E C K D H B G
这不是我们最初的问题,因此我们达到了矛盾。所以它不可能是a. 其他也同理。