编写算法,在二叉排序树上查找关键字值为key的算法。

题目

编写算法,在二叉排序树上查找关键字值为key的算法。


相似考题
更多“编写算法,在二叉排序树上查找关键字值为key的算法。”相关问题
  • 第1题:

    在含有27个结点的二叉排序树上查找关键字为35的结点,则依次比较的关键字有可能是()。

    A.28,36,18,46,35

    B.18,36,28,46,35

    C.46,28,18,36,35

    D.46,36,18,28,35


    参考答案:D

  • 第2题:

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

    A.先序

    B.中序

    C.后序

    D.层序


    正确答案:B

  • 第3题:

    ● 用关键字序列10、20、30、40、50构造的二叉排序树(二叉查找树)为 (63) 。


    正确答案:C

  • 第4题:

    设二叉排序树的高度为h,则在该树中查找关键字key最多需要比较()次。


    正确答案:n

  • 第5题:

    以下关于二叉排序树的说法正确的是()。Ⅰ.在二叉排序树中,每个结点的关键字都比左孩子关键字大,比右孩子关键字小Ⅱ.每个结点的关键字都比左孩子关键字大,比右孩子关键字小,这样的二叉树都是二叉排序树Ⅲ,在二叉排序树中,新插入的关键字总是处于最底层Ⅳ.在二叉排序树中,新结点总是作为叶子结点来插入的Ⅴ.二叉排序树的查找效率和二叉排序树的高度有关

    A.Ⅰ、Ⅱ、Ⅳ、Ⅴ
    B.Ⅱ、Ⅲ、Ⅳ
    C.Ⅰ、Ⅲ、Ⅴ
    D.Ⅰ、Ⅳ、Ⅴ

    答案:D
    解析:
    在二叉排序树中,新插入的关键字总是作为叶子结点来插入的,但是叶子结点不一定总是处于最底层。对于二叉排序树,左子树上所有记录的关键字均小于根记录的关键字;右子树上所有记录的关键字均大于根记录的关键字。而不是仅仅与左、右孩子的关键字进行比较。

  • 第6题:

    设二叉排序树中关键字由1~1000的整数构成,现要查找关键字为363的结点,下列关键字序列不可能是在二叉排序树上查找到的序列是()。

    A.2,252,401,398,330,344,397,363
    B.924,220,911,244,898,258,362,363
    C.925,202,911,240,912,245,363
    D.2,399,387,219,266,382,381,278,363

    答案:C
    解析:
    把这四个序列各插入到一个初始为空的二叉排序树中,可以发现,C序列形成的不是一条路径,而是有分支的,可见它是不可能在查找过程中访问到的序列。

  • 第7题:

    在结点数确定的二叉排序树上进行查找的平均查找长度与二叉树的形态有关,最差的情况是二叉排序树为()树的时候。


    正确答案:单支树

  • 第8题:

    依次插入关键字(51, 37,60,54,49,32,79,27,36)生成二叉排序树,则查找关键字值54(查找成功),需做的关键字比较次数为();查找关键字值22(查找失败),需做的关键字比较次数为()


    正确答案:3;4

  • 第9题:

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

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

    正确答案:A,C

  • 第10题:

    折半查找又称为(),使用该查找算法的前提条件是,查找表中记录相应的关键字值必须按()。


    正确答案:二分查找;升序或降序排列

  • 第11题:

    多选题
    数据结构与算法里,二叉排序树的查找方式和()相似,请将不是这个答案的选项选上。
    A

    折半查找

    B

    顺序查找

    C

    随机查找

    D

    跳跃式查找


    正确答案: B,C
    解析: 暂无解析

  • 第12题:

    填空题
    依次插入关键字(51, 37,60,54,49,32,79,27,36)生成二叉排序树,则查找关键字值54(查找成功),需做的关键字比较次数为();查找关键字值22(查找失败),需做的关键字比较次数为()

    正确答案: 3,4
    解析: 暂无解析

  • 第13题:

    假设二叉排序树(t为指向根结点的指针)中各元素值均不相同,设计一个递归算法按递增顺序输出树上各元素值。


    参考答案:

  • 第14题:

    在查找算法中,可用平均查找长度(记为ASL)来衡量一个查找算法的优劣,其定义为:

    此处Pi为表中第i个记录被查找的概率,Ci为查找第i个记录时同关键字比较的次数,n为表中记录数。

    以下叙述中均假定每一个记录被查找的概率相等,即Pi=//n(i=1,2,…,n)。当表中的记录连续存储在一个一维数组中时,可采用顺序查找与折半查找方法(折半查找要求表是按关键字有序排列的)。顺序查找时的ASL为(19),折半查找时的ASL为(20)。记录的关键字有序时,用二叉排序树查找记录,在最坏的情况下,ASL为(21)。当二叉排序树是一棵平衡树时,ASL为(22)。在平衡树上删除一个结点后可以通过旋转使其平衡,最坏的情形下需(23)次旋转。

    A.O(1)

    B.O(log2n)

    C.O(log2n2)

    D.O(nlog2n)

    E.O(n)


    正确答案:E

  • 第15题:

    在关键字随机分布的情况下,在二叉排序树上进行查找的平均查找长度与(28)的量级相当。

    A.顺序查找

    B.二分查找

    C.哈希查找

    D.逆序查找


    正确答案:B

  • 第16题:

    试题三(共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

  • 第17题:

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


    答案:D
    解析:

  • 第18题:

    数据结构与算法里,二叉排序树的查找方式和()相似,请将不是这个答案的选项选上。

    • A、折半查找
    • B、顺序查找
    • C、随机查找
    • D、跳跃式查找

    正确答案:B,C,D

  • 第19题:

    基于关键字比较大小的排序算法中,()排序算法的平均时间复杂度最优。


    正确答案:快速排序

  • 第20题:

    在一棵二叉排序树上实施()遍历后,其关键字序列是一个有序表。


    正确答案:中序

  • 第21题:

    数据结构与算法里,二叉排序树的查找方式跟顺序表的折半查找类似。


    正确答案:正确

  • 第22题:

    填空题
    基于关键字比较大小的排序算法中,()排序算法的平均时间复杂度最优。

    正确答案: 快速排序
    解析: 暂无解析

  • 第23题:

    判断题
    数据结构与算法里,二叉排序树的查找方式跟顺序表的折半查找类似。
    A

    B


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

  • 第24题:

    填空题
    在结点数确定的二叉排序树上进行查找的平均查找长度与二叉树的形态有关,最差的情况是二叉排序树为()树的时候。

    正确答案: 单支树
    解析: 暂无解析