首页 > 知识点讲解
       动态查找
相关知识点:3个      
        动态查找也称树表查找,可执行动态查找的数据结构有二叉排序树、B-树和B+树等。动态查找表的特点是:表结构本身是在查找过程中动态生成的,即对于给定值key,若表中存在其关键字等于key的记录,则在查找成功后返回,否则插入关键字等于key的记录。考生重点掌握二叉排序树,因此这里主要介绍二叉排序树。
        二叉排序树(简称BST)或者是一棵空树,或者是具有下列性质的二叉树。
        .若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值。
        .若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值。
        .它的左、右子树也分别为二叉排序树。
        从BST的性质可推出二叉排序树的另一个重要性质:按中序遍历该树所得到的中序序列是一个递增有序序列。
        二叉排序树的查找方法:类似于折半查找,当二叉排序树不空时,首先将给定值k与根结点的关键字进行比较,若相等则查找成功;否则依k的大小在左子树或右子树上查找。可见,二叉排序树的查找是一个递归过程。
        二叉排序树的构造:二叉排序树由依次输入的数据元素的序列构造而成。每读入一个元素,建立一个新的结点,并按下列原则插入结点。
        .若二叉排序树为空树,则新结点为二叉排序树的根结点。
        .若二叉排序树非空,则新结点的值与根结点比较,若小于根结点,则插入到左子树;否则插入到右子树。
        二叉排序树的结点删除主要有以下3种情况。
        .若删除的结点为*p,其双亲为*f,如果*p没有左右孩子,则可直接删除*p,修改*f的指针即可。
        .若*p结点只有左子树或只有右子树,此时只要令其左子树或右子树直接成为其双亲结点*p的左子树即可。
        .若*p结点的左子树和右子树均不空,如果希望中序遍历该二叉树得到的序列的相对位置在删除结点前后不变,则可采用如下方法:其一,令*p的左子树为*f的左子树,而*p的右子树为*s的右子树。其中*s为*p左子树中最右边的一个结点。其二,令*p的直接前驱(或直接后继)替代*p,然后再从二叉排序树中删除它的直接前驱(或直接后继)。这两种删除方法都能使原二叉排序树的中序遍历结果中结点的先后次序保持不变。
        就平均时间性能而言,二叉排序树上的查找和折半查找相似。但就维护表的有序性而言,前者更有效,因为无须移动记录,只需修改指针即可完成对二叉排序树的插入和删除操作,而且其平均的执行时间均为O(log2n)。
        有关平衡二叉树、B-树和B+树的知识,考生可参考相关参考文献。
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有