正在载入在线练习界面,本页内容可直接阅读…
AK CSP › CSP-J 2019 第一轮真题 › 第 14 题
CSP-J 2019 第一轮 第 14 题:由后序中序求前序遍历
题目
假设一棵二叉树的后序遍历序列为 $\texttt{DGJHEBIFCA}$,中序遍历序列为 $\texttt{DBGEHJACIF}$,则其前序遍历序列为()。
选项
- A. $\texttt{ABCDEFGHIJ}$
- B. $\texttt{ABDEGHJCFI}$
- C. $\texttt{ABDEGJHCFI}$
- D. $\texttt{ABDEGHJFIC}$
答案
B
题解
答案是 B.$\texttt{ABDEGHJCFI}$。
关键是记住三种遍历的顺序:
- 前序:根 → 左子树 → 右子树
- 中序:左子树 → 根 → 右子树
- 后序:左子树 → 右子树 → 根
因此,后序的最后一个字母是根,再用这个根把中序分成左右两部分,不断重复即可。
① 后序 DGJHEBIFCA 的最后一个字母是 A,所以根是 A。中序按 A 划分:
``text DBGEHJ | A | CIF 左子树 右子树 ``
左子树有 6 个节点,右子树有 3 个节点,因此后序对应划分为:
``text DGJHEB | IFC | A 左子树 右子树 根 ``
② 对左右子树重复这个过程:
- 左子树的根是
B,中序为D | B | GEHJ。 B的左孩子是D。- 右子树的后序是
GJHE,根是E;中序为G | E | HJ。 - 所以
E左边是G,右边以H为根,H的右孩子是J。 - 右子树的根是
C,中序为C | IF。 C没有左子树,右子树的后序是IF,所以根是F,F的左孩子是I。
得到二叉树:
``text A / \ B C / \ \ D E F / \ / G H I \ J ``
按“根 → 左 → 右”读出前序遍历:
$$ \boxed{\texttt{ABDEGHJCFI}} $$
真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1
京公网安备11010502062986号