二叉树的先序遍历和中序遍历如下:先序遍历:EFHIGJK;中序遍历:HFIEJKG。该二叉树根的右子树的根是()

题目
二叉树的先序遍历和中序遍历如下:先序遍历:EFHIGJK;中序遍历:HFIEJKG。该二叉树根的右子树的根是()

A.E
B.F
C.G
D.H
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设计二叉树的双序遍历算法(双序遍历是指对于二叉树的每一个结点来说,先访问这个结点,再按双序遍历它的左子树,然后再一次访问这个结点,接下来按双序遍历它的右子树)。


参考答案:若树为空,返回;若某结点为叶子结点,则仅输出该结点;否则先输出该结点,递归遍历其左子树,再输出该结点,递归遍历其右子树。
  [算法描述]
  void DoubleTraverse(BiTree T)
  {
  if(T == NULL)
  return;
  else if(T->lchild==NULL&&T->rchild==NULL)
  cout<data; //叶子结点输出
  else
  {
  cout<data;
  DoubleTraverse(T->lchild); //递归遍历左子树
  cout<data;
  DoubleTraverse(T->rchild); //递归遍历右子树
  }
  }

第2题:

二叉树的遍历方式有()

A先序遍历

B中序遍历

C后序遍历

D线索遍历


参考答案:ABC

第3题:

● 已知一个二叉树的先序遍历序列为①、②、③、④、⑤,中序遍历序列为②、①、④、③、⑤,则该二叉树的后序遍历序列为 (57) 。对于任意一棵二叉树,叙述错误的是 (58) 。

(57)A. ②、③、①、⑤、④

B. ①、②、③、④、⑤

C. ②、④、⑤、③、①

D. ④、⑤、③、②、①

(58)A. 由其后序遍历序列和中序遍历序列可以构造该二叉树的先序遍历序列

B. 由其先序遍历序列和后序遍历序列可以构造该二叉树的中序遍历序列

C. 由其层序遍历序列和中序遍历序列可以构造该二叉树的先序遍历序列

D. 由其层序遍历序列和中序遍历序列不能构造该二叉树的后序遍历序列


正确答案:C,B
试题(57)、(58)分析
  本题考查数据结构基础知识。
  遍历运算是二叉树的基本运算,主要有先序、中序、后序和层序遍历。
  先序遍历的基本方法:对于非空二叉树,先访问根结点,然后先序遍历根的左子树,最后先序遍历根的右子树。因此,若已知某二叉树的先序遍历序列,则可直接得到其树根结点。
  中序遍历的基本方法:对于非空二叉树,先中序遍历根的左子树,然后访问根结点,最后中序遍历根的右子树。因此,若已知某二叉树的根结点,则一可根据中序遍历序列将该二叉树左右子树上的结点划分开。
  后序遍历的基本方法:对于非空二叉树,首先后序遍历根的左子树,接着后序遍历根的右子树,最后访问根结点。因此,若已知某二叉树的后序遍历序列,则可直接得到其树根结点。
  题中给出的先序遍历序列为①、②、③、④、⑤,可知树根结点是①,据此再结合中序遍历序列②、①、④、③、⑤,可知②是根结点①左子树上的结点,由于是左子树上唯一的一个结点,因此②是根结点①的左孩子。对于右子树上的结点④、③、⑤,因右子树的先序遍历序列为③、④、⑤,因此③是根结点①的右孩子。依此类推,可知④是结点③的左孩子,⑤是结点③的右孩子。该二叉树如下图所示。

 
  从二叉树的遍历过程可知,从先序遍历序列和后序遍历序列中无法将左子树和右子树上的结点区分开,因此,由某棵二叉树的先序遍历序列和后序遍历序列不能构造出该二叉树的中序遍历序列。
  层序遍历二叉树的方法:设二叉树的根结点所在层数为1,则层序遍历二叉树的操作定义为从树的根结点出发,首先访问第一层的结点(根结点),然后从左到右依次访问第二层上的结点,接着是第三层上的结点,依此类推,自上而下、自左至右逐层访问树中各层上的结点。

 

第4题:

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

A.A,I.KB.F,IC.F,GD.I,G


正确答案:C

第5题:

已知某二叉树的先序遍历序列是ABDCE,中序遍历序列是BDAEC,则该二叉树为______。

 


正确答案:C
解析:本题考查数据结构基础知识。
对二叉树进行先序遍历的过程是:若二叉树非空,则先访问根结点,然后先序遍历左子树,最后先序遍历右子树。因此,二叉树的先序遍历序列中,第一个元素是根结点。
  对二叉树进行中序遍历的过程是:若二叉树非空,则先中序遍历左子树,然后访问根结点,最后中序遍历右子树。因此,若在中序遍历序列中已找出二叉树的根结点,则根结点左边为左子树的中序遍历序列,右边是右子树的中序遍历序列。
  由此,根据先序序列确定根结点,根据中序序列划分左右子树,反复应用此原则,就可根据先序遍历序列和中序遍历序列恢复二叉树的结构。
  本题中,先序序列为ABDCE,因此A是树根结点,中序序列为BDAEC,因此BD是左子树上的结点,EC是右子树上的结点。根据先序遍历序列,可知B是左子树的根结点,C是右子树的根结点。在中序遍历序列BDAEC中,D在B之后,因此D是B的右孩子。同理,在中序遍历序列BDAEC中,E在C之前,因此E是C的左孩子。

第6题:

设某一二叉树先序遍历为abdec,中序遍历为dbeac,则该二叉树后序遍历的顺序是()。

A.abedc

B.abdec

C.debac

D.debca


参考答案:D

第7题:

图的广度优先遍历算法类似于二叉树的________。

A、先序遍历

B、中序遍历

C、后序遍历

D、层序遍历


参考答案:D

第8题:

树的基本遍历策略可分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历。这里,我们把由树转换得到的二叉树叫做这棵树对应的二叉树。结论(27)是正确的。

A.树的先根遍历序列与其对应的二叉树的先序遍历序列相同

B.树的后根遍历序列与其对应的二叉树的后序遍历序列相同

C.树的先根遍历序列与其对应的二叉树的中序遍历序列相同

D.以上都不对


正确答案:A
解析:本题考查树的遍历和树向二叉树的转换。树的遍历方法中的前序遍历是首先访问根结点,然后从左到右按前序遍历根结点的各棵子树;后序遍历是首先从左到右按后序遍历根结点的各棵子树,然后访问根结点。而二叉树的遍历方法中前序遍历是首先访问根结点,然后按前序遍历根结点的左子树,再按前序遍历根结点的右子树;后序遍历是首先按后序遍历根结点的左子树,然后按后序遍历根结点的右子树,再访问根结点;中序遍历是首先按中序遍历根结点的左子树,然后访问根结点,再按中序遍历根结点的右子树。树的转换思想是根据孩子的存储方式而来的,其步骤是:(1)在各兄弟结点之间用虚线相连;(2)对每个结点仅保留它与其最左一个孩子的连线,抹去该结点与其他孩子之间的连线;(3)把虚线改为实线从水平方向向下旋转45℃,成右斜下方向,原树中实线成左斜下方向。
  下面,我们来看一个例子,图A是一棵普通树,图B是其转换来的二叉树。

  图A的前序遍历为:A,B,E,C,F,H,G,D
  图A的后序遍历为:E,B,H,F,G,C,D,A
  图B的前序遍历为:A,B,E,C,F,H,G,D
  图B的中序遍历为:E,B,H,F,G,C,D,A
  图B的后序遍历为:E,H,G,F,D,C,B,A
  由此可见,树的前序遍历序列与其对应的二叉树的前序遍历序列相同。

第9题:

关于森林的遍历有以下说法:

①森林的先序遍历等同于其对应的二叉树的先序遍历。

②森林的中序遍历等同于其对应的二叉树的中序遍历。

③森林的后序遍历等同于其对应的二叉树的后序遍历。

④森林的后序遍历等同于其对应的二叉树的中序遍历。

其中正确的是______。

A.①②③

B.①②

C.①④

D.②④


正确答案:B
解析:根据森林和二叉树的转换规则,以及树的遍历定义可以得出,说法①②正确。值得注意的是,森林无后序遍历的定义。另外,树的先序遍历和后序遍历分别对应该树转换成的二叉树的先序遍历和中序遍历。树没有中序遍历的定义,不要把森林和树跟二叉树遍历的对应关系搞混了。

第10题:

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

A.A,I.K
B. F,I
C. F,G
D.I,G

答案:C
解析:
由先序遍历看,E为根节点,F为根节点的作孩子。在看中序遍历,则左树有:IE两个子结点。那么E的右孩子结点为G。