森林T=(T1,T2,…,Tm)转化为二叉树BT的过程为:若m=0,则BT为空;若m≠0,则____。【太原科技大学2006年】
A: 将中间子树Tmid(mid=(1十m)/2)的根作为BT的根;将(T1,T2,…,Tmid—1)转换为BT的左子树:将(Tmid十,…,Tm)转换为BT的右子树
B: 将子树T1的根作为BT的根;将T1的子树森林转换成BT的左子树;将(T2,T3,…,Tm)转换成BT的右子树
C: 将子树T1的根作为BT的根;将T1的左子树森林转换成BT的左子树:将T1的右子树森林转换为BT的右子树;其他依次类推
D: 将森林T的根作为BT的根;将(T1,T2,…,Tm)转化为该根下的结点,得到一棵树,然后将这棵树再转化为二叉树BT
A: 将中间子树Tmid(mid=(1十m)/2)的根作为BT的根;将(T1,T2,…,Tmid—1)转换为BT的左子树:将(Tmid十,…,Tm)转换为BT的右子树
B: 将子树T1的根作为BT的根;将T1的子树森林转换成BT的左子树;将(T2,T3,…,Tm)转换成BT的右子树
C: 将子树T1的根作为BT的根;将T1的左子树森林转换成BT的左子树:将T1的右子树森林转换为BT的右子树;其他依次类推
D: 将森林T的根作为BT的根;将(T1,T2,…,Tm)转化为该根下的结点,得到一棵树,然后将这棵树再转化为二叉树BT
举一反三
- 设一棵树T可以转化成二叉树BT,则二叉树BT中一定没有右子树
- 树是结点的有限集合,它()根结点,记为T。其余的结点分成为m(m≥0)个()的集合T1、T2、…、Tm,每个集合又都是树,此时结点T称为Ti的双亲结点,Ti称为T的子树(1≤i≤m)。一个结点的子树个数为该结点的()。
- void PreOrder(BinTree bt)//递归先序遍历算法{ if(bt==NULL) return; //递归出口visit(bt); //访问根结点 InOrder (leftchild(bt)); //中序遍历左子树 InOrder (rightchild(bt)); //中序遍历右子树 }void InOrder(BinTree bt)//递归中序遍历算法{ if(bt==NULL) return; //递归出口 PreOrder (leftchild(bt)); //先序遍历左子树 visit(bt); //访问根结点 PreOrder (rightchild(bt)); //先序遍历右子树 }void main(){ bt = CreateBinTree();//创建一棵二叉树 Preorder(bt); //入口}对下面二叉树执行以上程序,则输出序列是()[img=94x192]1803078d93c9821.png[/img] A: 1,2,3,4,5 B: 1,3,5,4,2 C: 5,4,3,2,1 D: 1,3,4,5,2
- void PreOrder(BinTree bt)//递归先序遍历算法{ if(bt==NULL) return; //递归出口 visit(bt); //访问根结点 InOrder (leftchild(bt)); //中序遍历左子树 InOrder (rightchild(bt)); //中序遍历右子树 }void InOrder(BinTree bt)//递归中序遍历算法{ if(bt==NULL) return; //递归出口 PreOrder (leftchild(bt)); //先序遍历左子树 visit(bt); //访问根结点 PreOrder (rightchild(bt)); //先序遍历右子树 }void main(){ bt = CreateBinTree(); //创建一棵二叉树 Preorder(bt); //入口}对下面二叉树执行以上程序,则输出序列是()[img=94x192]18031cb3c2815d5.png[/img] A: 1,3,5,4,2 B: 1,2,3,4,5 C: 5,4,3,2,1 D: 1,3,4,5,2
- 设森林T中有4棵树,其结点个数分别为n1,n2,n3,n4,那么当森林T转换成一棵二叉树后,则根结点的右子树上有( )个结点。