若一棵二叉中只有叶结点和左、右子树皆非空的结点,设叶结点的个数为k,则左、右子树皆非空的结点个数是【 】。

题目

若一棵二叉中只有叶结点和左、右子树皆非空的结点,设叶结点的个数为k,则左、右子树皆非空的结点个数是【 】。


相似考题
更多“若一棵二叉中只有叶结点和左、右子树皆非空的结点,设叶结点的个数为k,则左、右子树皆非空的结点个数是【 】。”相关问题
  • 第1题:

    若一颗二叉树中只有叶结点和左右子树皆非空的结点,设叶结点的个数为n,则左右子树皆非空的结点个数为__________。


    正确答案:
    n-1
    【解析】对任意二叉树,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。所谓度为2的结点,在二叉树里面即是左、右子树皆非空,因此,本题答案为n-1。

  • 第2题:

    若一棵二叉树中只有叶节点和左、右子树皆非空的节点,设叶节点的个数为k,则左、右子树皆非空的节点个数是【 】。


    正确答案:k-1
    k-1 解析:根据二叉树的性质可知:叶子节点等于双分支节点加1,因此叶子节点数为k,则左右子树皆非空的节点(双分支节点)的个数为k-1。

  • 第3题:

    若一棵二叉树中只有叶结点和左、右子树皆非空的结点,设叶结点的个数为n,则左、右子树皆非空的结点个数是 ______。


    正确答案:n-1
    n-1 解析:除了叶子结点左右子树皆非空的二叉树其左右子树皆非空的结点度都为2,假设左右子树皆非空的结点数为x,则树的度的总数为n+x-1,并且所有度都是这些左右子树皆非空的结点引出的,为2x,所以n+x-1=2x,得到x=n-1。

  • 第4题:

    在非空二叉树的中序遍历序列中,二叉树的根结点的左边(40)。

    A.只有左子树上的所有结点

    B.只有左子树上的部分结点

    C.只有右子树上的所有结点

    D.只有右子树上的部分结点


    正确答案:A
    解析:在非空二叉树中序遍历序列中,二叉树的根结点的左边的那些结点为根结点的左子树上的所有结点。答案为A。

  • 第5题:

    阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。

    【说明】

    一棵非空二叉树中“最左下”结点定义为:若树根的左子树为空,则树根为“最左下”结点;否则,从树根的左子树根出发,沿结点的左

    子树分支向下查找,直到某个结点不存在左子树时为止,该结点即为此二叉树的“最左下”结点。例如,下图所示的以 A为根的二叉树的“最

    左下”结点为D,以C为根的子二叉树中的“最左下”结点为C。

    二叉树的结点类型定义如下:

    typedef stmct BSTNode{

    int data;

    struct BSTNode*lch,*rch;//结点的左、右子树指针

    }*BSTree;

    函数BSTree Find Del(BSTree root)的功能是:若root指向一棵二叉树的根结点,则找出该结点的右子树上的“最左下”结点*p,并从

    树于删除以*p为根的子树,函数返回被删除子树的根结点指针;若该树根的右子树上不存在“最左下”结点,则返回空指针。

    【函数】

    BSTrce Find_Del(BSTreeroot)

    { BSTreep,pre;

    if ( !root ) return NULL; /*root指向的二叉树为空树*/

    (1); /*令p指向根结点的右子树*/

    if ( !p ) return NULL;

    (2); /*设置pre的初值*/

    while(p->lch){ /*查找“最左下”结点*/

    pre=p;p=(3);

    }

    if ((4)==root) /*root的右子树根为“最左下”结点*/

    pre->rch=NULL;

    else

    (5)=NULL; /*删除以“最左下”结点为根的子树*/

    reurn p;

    }


    正确答案:(1)p=root->rch (2)pre=root (3)p->lch (4)pre (5)pre->lch
    (1)p=root->rch (2)pre=root (3)p->lch (4)pre (5)pre->lch 解析:根据题目中的说明,函数BSTree FindDel (BSTreeroot)的功能是:若root指向一棵二叉树的根结点,则找出该结点的右子树上的“最

    左下”结点*p,并从树中删除以 *p为根的子树,函数返回被删除子树的根结点指针;若该树根的右子树上不存在“最左下”结点,则返回空指

    针。而一棵非空二叉树中“最左下”结点定义为:若树根的左子树为空,则树根为“最左下”结点;否则,从树根的左子树根出发,沿结点的

    左子树分支向下查找,直到某个结点不存在左子树时为止,该结点即为此二叉树的“最左下”结点。
    因此,给定一棵非空二叉树后,其右子树上的“最左下”结点要么为右子树根结点自己,要么为右子树根的左子树结点。
    当二叉树非空时,root指向的结点是存在的,因此,令p指向根结点的右子树表示为“p=root->rch"。在二叉树上删除结点的操作实质上

    是重置其父结点的某个子树指针,因此查找被删除结点时,需要保存被删结点的父结点指针,pre起的就是这个作用。空 (2)处应填入

    “p=root",使得指针pre与p指向的结点始终保持父子关系。根据“最左下”结点的定义,空(3)处应填入“p->lch"。
    当root的右子树根为“最左下”结点时,pre指针的指向就不会被修改,因此,空 (4)处应填入“pre”。若“最左下”结点在root的右子

    树的左子树上,则删除以p指向的“最左下”结点为根的子树就是将pre(*p的父结点)的左子树指针置空,因此,空 (5)填入“pre->Ich"。

  • 第6题:

    阅读以下说明、C函数和问题,将解答填入答题纸的对应栏内。

    【说明】

    二叉查找树又称为二叉排序树,它或者是一棵空树,或者是具有如下性质的二叉树:

    ●若它的左子树非空,则其左子树上所有结点的键值均小于根结点的键值;

    ●若它的右子树非空,则其右子树上所有结点的键值均大于根结点的键值;

    ●左、右子树本身就是二叉查找树。

    设二叉查找树采用二叉链表存储结构,链表结点类型定义如下:

    typedefstructBiTnode{

    intkey_value;/*结点的键值,为非负整数*/

    structBiTnode*left,*right;/*结点的左、右子树指针*/

    }*BSTree;

    函数find_key(root,key)的功能是用递归方式在给定的二叉查找树(root指向根结点)中查找键值为key的结点并返回结点的指针;若找不到,则返回空指针。

    【函数】

    BSTreefind_key(BSTreeroot,intkey)

    {

    if((1))

    returnNULL;

    else

    if(key==root->key_value)

    return(2);

    elseif(keykey_value)

    return(3);

    else

    return(4);

    }

    【问题1】

    请将函数find_key中应填入(1)~(4)处的字句写在答题纸的对应栏内。

    【问题2】

    若某二叉查找树中有n个结点,则查找一个给定关键字时,需要比较的结点个数取决于(5).


    答案:


    (1)!root,或root=0,或root==NULL


    (2)root


    (3)find_key(root→left,key)


    (4)find_key(root→right,key)


    (5)该关键字对应结点在该二叉查找树所在层次(数)或位置,或者该二叉树中从根结点到该关键字对应结点的路径长度


    解析:


    本题考查数据结构的应用、指针和递归程序设计。


    根据二叉查找树的定义,在一棵二叉查找树上进行查找时,首先用给定的关键字与树根结点的关键字比较,若相等,则查找成功;若给定的关键字小于树根结点的关键字,则接下来到左子树上进行查找,否则接下来到右子树上进行查找。如果在给定的二叉查找树上不存在与给定关键字相同的结点,则必然进入某结点的空的子树时结束查找。因此,空(1)处填入"!root"表明进入了空树;空(2)处填入"root"表明返回结点的指针;空(3)处填入"find_key(root→left,key)"表明下一步到左子树上继续查找;空(4)处填入"find_key(root→right,key)"表明下一步到右子树上继续查找。


    显然,在二叉排序树上进行查找时,若成功,则查找过程是走了一条从根结点到达所找结点的路径。例如,在下图所示的二叉排序树中查找62,则依次与46、54、101和62作了比较。因此,在树中查找一个关键字时,需要比较的结点个数取决于该关键字对应结点在该二叉查找树所在层次(数)或位置。

  • 第7题:

    对一棵非空二叉树进行中序遍历,则根结点的左边( )

    A.只有左子树上的所有结点

    B.只有右子树上的所有结点

    C.只有左子树上的部分结点

    D.只有右子树上的部分结点


    正确答案:A

  • 第8题:

    ●在一棵非空二叉排序树中,关键字最小的结点的(41)。

    (41)A.左子树一定为空、右子树不一定为空

    B.左子树不一定为空、右子树一定为空

    C.左子树和右子树一定都为空

    D.左子树和右子树一定都不为空


    正确答案:A

  • 第9题:

    二叉排序树或者是一棵空树,或者是具有下列性质的一棵二叉树:(1)若左子数不空,则左子树所有结点的值();(2)若右子数不空,则右子树所有结点的值(); (3)左右子树又分别是()。
    均小于根结点的值;均大于根结点的值;二叉排序树

  • 第10题:

    二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。


    正确答案:错误

  • 第11题:

    设一棵完全二叉树具有1000个结点,则此完全二叉树有()个叶子结点,有()个度为2的结点,有()个结点只有非空左子树,有()个结点只有非空右子树。


    正确答案:500;499;1;0

  • 第12题:

    填空题
    设一棵完全二叉树具有1000个结点,则此完全二叉树有()个叶子结点,有()个度为2的结点,有()个结点只有非空左子树,有()个结点只有非空右子树。

    正确答案: 500,499,1,0
    解析: 暂无解析

  • 第13题:

    若二叉排序树非空,则新结点的值和根结点比较,若小于根结点,则插入到右子树;否则插入到左子树。()

    此题为判断题(对,错)。


    参考答案:错误

  • 第14题:

    若由树转化得到的二叉树是非空的二叉树,则二叉树形状是()。

    A、根结点无右子树的二叉树

    B、根结点无左子树的二叉树

    C、根结点可能有左子树和右子树

    D、各结点只有一个子女的二叉树


    参考答案:A

  • 第15题:

    下面关于二叉树的叙述正确的是(40)。

    A.一棵二叉树中叶子结点的个数等于度为2的结点个数加1

    B.一棵二叉树中的结点个数大于0

    C.二叉树中任何一个结点要么是叶,要么恰有两个子女

    D.二叉树中,任何一个结点的左子树和右子树上的结点个数一定相等


    正确答案:A
    解析:根据二叉树的性质,对于任何一棵二叉树T,如果其终端结点数为n0,度数为2的结点数为n2,则n0=n2+1。

  • 第16题:

    对于二叉查找树(Binary Search Tree),若其左子树非空,则左子树上所有结点的值均小于根结点的值;若其右子树非空,则右子树上所有结点的值均大于根结点的值。左、右子树本身就是两棵二叉查找树。因此,对任意一棵二叉查找树进行(61)遍历可以得到一个结点元素的递增序列。在具有n个结点的二叉查找树上进行查找运算,最坏情况下的算法复杂度为(62)。

    A.先序

    B.中序

    C.后序

    D.层序


    正确答案:B

  • 第17题:

    若一棵二叉树中只有叶节点和左、右子树皆非空的节点,设叶节点的个数为1,则左、右子树皆非空的节点个数为【 】。


    正确答案:×
    0 解析:根据二叉树的性质:叶子节点数为双分支节点数加1。本题叶节点为1,所以双分支节点(左、右子树皆非空的节点)为0。

  • 第18题:

    在一非空二叉树的中序遍历序列中,根结点的右边(40)。

    A.只有右子树上的所有结点

    B.只有右子树上的部分结点

    C.只有左子树上的部分结点

    D.只有左子树上的所有结点最左子树


    正确答案:A
    解析:中序遍历二叉树的操作定义为:1、中序遍历左子树;2、访问根结点;3、中序遍历右子树。所以应该选择A。

  • 第19题:

    在一非空二叉树的中序遍历序列中,根结点的右边( )

    A.只有右子树上的所有结点

    B.只有右子树上的部分结点

    C.只有左子树上的所有结点

    D.只有左子树上的部分结点


    正确答案:A

  • 第20题:

    对于非空的二叉树,设D代表根结点,L代表根结点的左子树R代表根结点的右子树。若对下图所示的二叉树进行遍历后的结点序列为7 6 5 4 3 2 1,则遍历方式是( )。

    A.LRD
    B.DRL
    C.RLD
    D.RDL

    答案:D
    解析:
    该题突破了常规的遍历树的方式,采用了新的遍历方式。但是做题进行判断时还是比较容易的,因为先根(包括根左右与根右左)的遍历,则根结点3会是第1个访问的结点;后根(左右根与根右左)的遍历,则根结点3会是最后1个访问的结点。给出的序列中3既不在第1个位置,也不在最后1个位置,所以先根后根都可除排,而A、B、C三个选项中,A与C是后根,B选项是先根,都可排除,只能选D。D是右根左的访问方式,与结点序列完全吻合。

  • 第21题:

    前序遍历序列与后序遍历序列相同的二叉树为()

    • A、非叶子结点只有左子树的二叉树
    • B、只有根结点的二叉树
    • C、根结点无右子树的二叉树
    • D、非叶子结点只有右子树的二叉树

    正确答案:B

  • 第22题:

    在非空二叉树的中序遍历序列中,二叉树的根结点的左边应该()

    • A、只有左子树上的所有结点
    • B、只有左子树上的部分结点
    • C、只有右子树上的所有结点
    • D、只有右子树上的部分结点

    正确答案:A

  • 第23题:

    填空题
    二叉排序树或者是一棵空树,或者是具有下列性质的一棵二叉树:(1)若左子数不空,则左子树所有结点的值();(2)若右子数不空,则右子树所有结点的值(); (3)左右子树又分别是()。

    正确答案: 均小于根结点的值,均大于根结点的值,二叉排序树
    解析: 暂无解析