Description
给出一棵二叉树的中序与后序排列。求出它的先序排列(树结点用不同的大写字母表示)。
数据范围:长度 $≤8$
Solution
做法
中序遍历:ACGDBHZKX
;后序遍历:CDGAHXKZB
根据后序遍历的性质,首先可以找到主根 B,输出。找到中序遍历中的 B,可以把整棵树分为 ACGD
和 HZKX
;对应的后序遍历为 CDGA
和 HXKZ
,分别递归。递归到中序遍历的长度 $=0$ 为止。
实现
a.substr(0, k)
为截取并复制字符串 $a$ 中 $0$ 开始长度为 $k$ 的子串。a.substr(k)
为截取字符串 $a$ 从 $k$ 开始一直到最后的子串。a.find(c)
返回字符串 $a$ 中第一个找到字符串 $c$ 的位置。
Code
1 |
|