参考答案和解析
正确答案:正确
更多“在二叉排序树上插入新的结点时,不必移动其它结点,仅需改动某个结点的指针,由空变为非空即可。”相关问题
  • 第1题:

    在不带头结点的非空单链表中,首元结点的存储位置由头指针指示,除首元结点外,其它任一元素结点的存储位置由前驱结点的指针域的指针指示。()

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


    参考答案:正确

  • 第2题:

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

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

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

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

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


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

  • 第3题:

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

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

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

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

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


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

  • 第4题:

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

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

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

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

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


    正确答案:A

  • 第5题:

    试题三(共15分)

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

    【说明】

    函数Insert _key (*root,key)的功能是将键值key插入到*root指向根结点的二叉查找树中(二叉查找树为空时*root为空指针)。若给定的二叉查找树中已经包含键值为key的结点,则不进行插入操作并返回0;否则申请新结点、存入key的值并将新结点加入树中,返回l。

    提示:

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

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

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

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

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

    typedef struct BiTnode{

    int key _value; /*结点的键值,为非负整数*/

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

    }BiTnode, *BSTree;

    【C函数】

    int Insert _key( BSTree *root,int key)

    {

    BiTnode *father= NULL,*p=*root, *s;

    while( (1)&&key!=p->key_value){/*查找键值为key的结点*/

    father=p;

    if(key< p->key_value)p= (2) ; /*进入左子树*/

    else p= (3) ; /木进入右子树*/

    }

    if (p) return 0; /*二叉查找树中已存在键值为key的结点,无需再插入*/

    s= (BiTnode *)malloc( (4) );/*根据结点类型生成新结点*/

    if (!s) return -1;

    s->key_value= key; s->left= NULL; s->right= NULL;

    if( !father)

    (5) ; /*新结点作为二叉查找树的根结点*/

    else /*新结点插入二叉查找树的适当位置*/

    if( key< father->key_value)father->left = s;

    elsefather->right = s;

    retum 1:

    }


    正确答案:
    (1)p   
    (2)p->left   
    (3) p->right  
    (4) sizeof(BiTnode)   
    (5)  *root=s

  • 第6题:

    设二叉排序树上有n个结点,则在二叉排序树上查找结点的平均时间复杂度为()。


    答案:D
    解析:

  • 第7题:

    在二叉树排序树中插入一个新结点,总是插入到叶结点下面。


    正确答案:错误

  • 第8题:

    关于二叉排序树描述有误的是()。

    • A、二叉排序的右子树上结点的关键字小于左子树上的结点的关键字
    • B、二叉排序的左子树上结点的关键字小于右子树上的结点的关键字
    • C、二叉排序的根节点的关键大于右子树上结点的关键字
    • D、二叉排序的根节点的关键大于左子树上结点的关键字

    正确答案:A,C

  • 第9题:

    二叉排序树中,最小值结点的()。

    • A、左指针一定为空
    • B、右指针一定为空
    • C、左、右指针均为空
    • D、左、右指针均不为空

    正确答案:A

  • 第10题:

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


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

  • 第11题:

    单选题
    二叉排序树中,最小值结点的()。
    A

    左指针一定为空

    B

    右指针一定为空

    C

    左、右指针均为空

    D

    左、右指针均不为空


    正确答案: A
    解析: 在二叉排序树中,值最小的结点一定是中序遍历序列中第一个被访问的结点,即二叉树的最左下结点。

  • 第12题:

    判断题
    在二叉排序树中插入新结点时,新结点总是作为叶子结点插入。()
    A

    B


    正确答案:
    解析:

  • 第13题:

    在带头结点的非空单链表中,头结点的位置由()指示,首元结点的存储位置由()指示,除首元结点外,其它任一元素结点的存储位置由()指示。

    A.头指针

    B.头结点的指针域的指针

    C.前驱结点的指针域的指针


    参考答案:A,B,C

  • 第14题:

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

    A.先序

    B.中序

    C.后序

    D.层序


    正确答案:B

  • 第15题:

    阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 二叉查找树又称为二叉排序树,它或者是一棵空树,或者是具有如下性质的二叉树。 (1)若它的左子树非空,则左子树上所有结点的值均小于根结点的值。 (2)若它的右子树非空,则右子树上所有结点的值均大于根结点的值。 (3)左、右子树本身就是两棵二叉查找树。 二叉查找树是通过依次输入数据元素并把它们插入到二叉树的适当位置上构造起来的,具体的过程是:每读入一个元素,建立一个新结点,若二叉查找树非空,则将新结点的值与根结点的值相比较,如果小于根结点的值,则插入到左子树中,否则插入到右子树中;若二叉查找树为空,则新结点作为二叉查找树的根结点。 根据关键码序列{46,25,54,13,29,91}构造一个二叉查找树的过程如图4-1所示。设二叉查找树采用二叉链表存储,结点类型定义如下: typedef int KeyType; typedef struct BSTNode{ KeyType key; struct BSTNode *left,*right; }BSTNode,*BSTree; 图4-1(g)所示二叉查找树的二叉链表表示如图4-2所示。图4-2 函数int InsertBST(BSTree *rootptr,KeyType kword)功能是将关键码kword插入到由rootptr指示出根结点的二叉查找树中,若插入成功,函数返回1,否则返回0。

    【C代码】 int lnsertBST(BSTree*rootptr,KeyType kword) /*在二叉查找树中插入一个键值为kword的结点,若插入成功返回1,否则返回0; *rootptr为二叉查找树根结点的指针 */ { BSTree p,father; (1) ; /*将father初始化为空指针*/ p=*rootptr; /*p指示二叉查找树的根节点*/ while(p&& (2) ){ /*在二叉查找树中查找键值kword的结点*/ father=p; if(kword<p->key) p=p->left; else p=p->right; } if( (3) )return 0; /*二叉查找树中已包含键值kword,插入失败*/ p=(BSTree)malloc( (4) ); /*创建新结点用来保存键值kword*/ If(!p)return 0; /*创建新结点失败*/ p->key=kword; p->left=NULL; p->right=NULL; If(!father) (5) =p; /*二叉查找树为空树时新结点作为树根插入*/ else if(kword<father->key) (6) ; /*作为左孩子结点插入*/ else (7) ; /*作右孩子结点插入*/ return 1; }/*InsertBST*/


    正确答案:father=(void*)0 
    keyword!=p->key
    p
    sizeof(BSTNode)
    *rootptr
    father->left=p
    father->right=p 

  • 第16题:

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

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

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

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

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


    正确答案:A

  • 第17题:

    阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】二叉查找树又称为二叉排序树,它或者是一棵空树,或者是具有如下性质的二叉树。(1)若它的左子树非空,则左子树上所有结点的值均小于根结点的值。(2)若它的右子树非空,则右子树上所有结点的值均大于根结点的值。(3)左、右子树本身就是两棵二叉查找树。二叉查找树是通过依次输入数据元素并把它们插入到二叉树的适当位置上构造起来的,具体的过程是:每读入一个元素,建立一个新结点,若二叉查找树非空,则将新结点的值与根结点的值相比较,如果小于根结点的值,则插入到左子树中,否则插入到右子树中;若二叉查找树为空,则新结点作为二叉查找树的根结点。根据关键码序列{46,25,54,13,29,91}构造一个二叉查找树的过程如图4-1所示。

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

    typedef int KeyType;typedef struct BSTNode{KeyType key;struct BSTNode *left,*right;}BSTNode,*BSTree;

    图4-1(g)所示二叉查找树的二叉链表表示如图4-2所示。

    函数int InsertBST(BSTree *rootptr,KeyType kword)功能是将关键码kword插入到由rootptr指示出根结点的二叉查找树中,若插入成功,函数返回1,否则返回0。【C代码】

    int lnsertBST(BSTree*rootptr,KeyType kword)/*在二叉查找树中插入一个键值为kword的结点,若插入成功返回1,否则返回0;*rootptr为二叉查找树根结点的指针*/{BSTree p,father;(1) /*将father初始化为空指针*/p=*rootptr; /*p指示二叉查找树的根节点*/while(p&&(2)){ /*在二叉查找树中查找键值kword的结点*/father=p;if(kword<p->key)p=p->left;elsep=p->right;}if((3))return 0; /*二叉查找树中已包含键值kword,插入失败*/ p=(BSTree)malloc((4)); /*创建新结点用来保存键值kword*/If(!p)return 0; /*创建新结点失败*/p->key=kword;p->left=NULL;p->right=NULL; If(!father)(5) =p; /*二叉查找树为空树时新结点作为树根插入*/elseif(kword<father->key)(6);/*作为左孩子结点插入*/else(7);/*作右孩子结点插入*/return 1;}/*InsertBST*/


    答案:
    解析:
    father=(void*)0keyword!=p-keypsizeof(BSTNode)*rootptrfather-left=pfather-right=p

  • 第18题:

    二叉排序树插入操作中,新插入的结点总是以树的()结点被插入的。


    正确答案:

  • 第19题:

    在二叉排序树上插入新的结点时,不必移动其它结点,仅需改动某个结点的指针,由空变为非空即可。


    正确答案:正确

  • 第20题:

    在二叉排序树中插入新结点时,新结点总是作为叶子结点插入。


    正确答案:正确

  • 第21题:

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

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

    正确答案:A

  • 第22题:

    判断题
    在二叉排序树上插入新的结点时,不必移动其它结点,仅需改动某个结点的指针,由空变为非空即可。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第23题:

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

    只有左子树上的所有结点

    B

    只有左子树上的部分结点

    C

    只有右子树上的所有结点

    D

    只有右子树上的部分结点


    正确答案: D
    解析: 暂无解析

  • 第24题:

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

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