问答题(1999年复旦大学)

对于二叉树T 的两个结点 n1 和 n2 ,我们应该选择树 T 结点的前序、中序和后序中哪两个序列来判断结点 n1 必定是结点 n2的祖先,并给出判断的方法。不需证明判断方法的正确性。

答案解析

后序。后序遍历时运行栈中存放的结点都是当前访问结点的祖先结点。

讨论

一棵二叉树按中序遍历时各结点被访问的次序和这棵二叉树按后序遍历时各结点被访问的次序能否唯一确定这棵二叉树的结构?为什么?若已知一棵二叉树按先序遍历时各结点被访问的次序和这棵二叉树按后序遍历时各结点被访问的次序,能否唯一确定这棵二叉树的结构?为什么?

用一维数组存放的一棵完全二叉树如下:A、B、C、D、E、F、G、H、I、J、K、L写出后序遍历该二叉树时访问结点的顺序。

已知一棵二叉树的前序遍历结果是ADCEBFIHGJ,中序遍历结果是CDEBAFHGIJ,试画出这棵二叉树。

证明,由一棵二叉树的前序序列和中序序列可唯一地确定这棵二叉树。设一棵二叉树的前序序列为ABDGECFH,中序序列为DGBEAFHC,试画出该二叉树。

已知一棵度为m的树中有N1个度为1的结点,N2个度为2的结点,...,Nm个度为m的结点。试问该树中有多少个叶子结点?

一个深度为 h 的满 m 叉树有如下性质:第 h 层上的结点都是叶结点,其各层上每个结点有 m 棵非空子树。问:(1)第 k 层最多有多少个结点?(k≤h )(2)整棵树最多有多少个结点?(3)若按层次从上到下,每层从左到右的顺序从1开始对全部结点编号,编号为 i 的结汽的双亲结点的编号是什么?编号为 i 的结点的第 j 个孩子结点(若存在)的编号是什么?

具有7个结点的互不相识的二叉树共有__________棵。

如果只考虑有序树的情形,那么具有7个结点的不同形态的树共有【】

由二叉树的前序和后序遍历序列【 】唯一地确定这棵二叉树。

对于前序遍历和中序遍历结果相同的二叉树为__________;对于前序遍历和后序遍历结果相同的二叉树是为__________。一般二叉树只有根结点的二叉树要结点无左孩子的二叉树根结点无右孩子的二叉树所有结点只有左子树的二叉树所有结点只有右子树的二叉树

树是结点的集合,它的根结点数目是【 】

有n个数顺序(依次)进栈,则出栈顺序有Cn种。Cn=×

已知一棵二叉树,如果先序遍历的顺序是ADCEFGHB,中序遍历的顺序是CDFEGHAB,则后序遍历的结果为【 】。

若二叉树采用二叉链表存储结构,要交换其所有分支结点左右子树的位置,利用【 】遍历方法最合适。

对二叉排序树进行【 】遍历,可以得到该二叉树所有结点构成的排序序列。

对二叉树中的结点如下编号:树根结点编号为1,根的左孩子结点编号为2、右孩子结点编号为3,以此类推,对于编号为i的结点,其左孩子编号为2i、右孩子编号为2i+1。例如,下图所示二又树中有6个结点,结点a、b、c、d、e、f的编号分别为1、2、3、5、7、11。那么,当结点数为n(n>0)的【 】时,其最后一个结点编号为2n-1。

某二又树的先序遍历序列为 ABCDFGE,中序遍历序列为 BAFDGCE。以下关于该二又树的叙述中,正确的是【 】。

对于一般的树结构,可以采用孩子-兄弟表示法,即每个结点设置两个指针域,一个指针(左指针)指示当前结点的第一个孩子结点,另一个指针(右指针)指示当前结点的下一个兄弟结点。某树的孩子-兄弟表示如下图所示。以下关于结点 D 与 E 的关系的叙述中,正确的是【 】。

某二叉树的先序遍历(根、左、右)序列为 EFHIGJK、中序遍历(左、根、右)序列为HFIEJKG,则该二叉树根结点的左孩子结点和右孩子结点分别是【 】

对下图所示的二叉树进行中序遍历(左子树、根结点、右子树)的结果是【 】。