• 2022-06-16
    ​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
  • A

    举一反三

    内容

    • 0

      下面的程序段,实现对一棵二叉树的先根遍历。 public void preorder(BinaryNode p) // 先根次序遍历以p结点为根的子树,递归方法 { if (p != null) // 若二叉树不空 { System.out.print(p.data.toString() + " "); // 根先访问 ; // 遍历p的左子树,递归调用 ; // 遍历p的右子树,递归调用 } }

    • 1

      下面是统计叶子结点数的递归算法,对空白处填空()int CountLeafNode(BinTree bt) //统计叶子结点数{ if (bt==NULL) return (); else if((bt->leftchild==NULL)&&(bt->rightchild==NULL)) return ( ); else return(CountLeafNode(bt->leftchild)+CountLeafNode(bt->rightchild)); A: 1,0 B: 1,1 C: 0,1 D: 0,0

    • 2

      森林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

    • 3

      设有一二叉树BT,后序遍历为GFHEDCBA,中序遍历为:GFDEHACB,请问该二叉树的深度与前序遍历结果分别为何? A: 4, ADFGEHBC B: 4,ADFGEHCB C: 5, ADFGEHBC D: 5,ADFGEHCB

    • 4

      设一棵树T可以转化成二叉树BT,则二叉树BT中一定没有右子树