软件技术基础3-3.ppt

软件技术基础3-3.ppt

ID:61906756

大小:754.50 KB

页数:61页

时间:2021-03-27

软件技术基础3-3.ppt_第1页
软件技术基础3-3.ppt_第2页
软件技术基础3-3.ppt_第3页
软件技术基础3-3.ppt_第4页
软件技术基础3-3.ppt_第5页
资源描述:

《软件技术基础3-3.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、3.4二叉排序树及其查找一、定义所谓二叉排序树是指满足下列条件的二叉树:(1)左子树上的所有结点值均小于根结点值。(2)右子树上的所有结点值均不小于根结点值。(3)左、右子树也满足上述两个条件二、二叉排序树的特性二叉排序树有一个重要特性:中序遍历二叉排序树可以得到有序序列。因此,由无序序列构造二叉排序树实际上就将一个无序序列变成了有序序列。另外,由于在二叉排序树中插入的新结点都是叶子结点,因此,在对二叉排序树进行插入运算时,不需移动其他结点,而只需改动插入位置上的叶子结点指针即可。三、二叉排序树的构造依次读入给定序列中的每一个

2、元素,然后进行如下处理:(1)若当前的二叉排序树为空,则读入的元素为根结点。(2)若读入的元素值小于根结点值,则将元素插入到左子树中。(3)若读入的元素值不小于根结点值,则将元素插入到右子树中。无论是插入到左子树还是右子树,都是同样按照上述方法处理。四、二叉排序树的删除为了删除一个元素,首先要找到被删除元素所在的结点p和它的父结点q,然后分以下3种情况进行处理:(1)p为叶子结点:直接删除,修改父结点指针。(2)p为单支树:将P的子树链到q上。(3)p的左右子树均不空:将p的左子树的右链最右边的结点s的值填入p中,将s的左链链

3、到s的父结点的右指针。五、二叉排序树查找算法算法描述:输入一个值,在该树中查找,若找到输出该结点值;否则,显示查找失败。与根比,相等,查找成功,比根小,在左子树查比根大,在右子树查查左右子树时按同样的方法查structtree*search_btree(structtree*root,charkey){if(!root){cout<info!=key)/*查找key的循环*/{if(keyinfo)root=root->left;/*沿左路查找

4、*/elseroot=root->right;if(root==0){cout<info!=key)*/if(root!=0)cout<info);returnroot;}举例对数列{10,18,3,4,9,13,25},生成二叉排序树。10(1)1018(2)10318(3)103184(4)1034189(5)(7)10394181325103491813(6)多层索引树及其查找索引是提高数据存

5、取效率的基本方法。但如果索引本身很大,那么对索引的查找代价也就很大。因此,在实际应用中,一般采用多层索引树。多层索引的应用很广泛,二叉排序树实际上就是一种多层索引树。在二叉排序树中,每个结点有一个关键字(即结点值),并且还有两个指针。在对二叉排序树进行查找的过程中,当查找的关键字小于结点中的关键字时,就沿左指针往下找;当查找的关键字大于结点中的关键字时,就沿右指针往下找;当两者相等时,说明查找成功。由此可以看出,二叉排序树中结点的关键字起着指示查找路径的作用。结点结构一般来说,多层索引村中的每个结点包含2m个关键字域和2m+1

6、个指针域。多层索引树中的结点结构如图所示。LINK1KEY1LINK2KEY2…LINK2mKEY2mLINK2m+1B-树B-树是一种动态调节的平衡多路查找树。B-树的定义如下:一棵2m+l阶的树,或为空,或为满足下列条件的度为2m+l的树。(1)树中每个结点最多有2m+l棵子树,且除根结点外的所有非叶子结点至少有m+1棵子树,而根结点至少有两棵子树(除非根结点又是叶子结点)。(2)所有叶子结点均在最后一层上。(3)除叶子结点外的每个结点结构如前图所示。其中:KEYi(1≤i≤2m)为关键字域,用于存放关键字及有关数据信息;

7、LINKi(1≤i≤2m+l)为指针域,指向各子树的根结点。对于度为n+1(1≤n≤2m)的结点,前n个关键字域内容按关键字有序,即KEYi<KEYi+1(1≤i

8、树的存储空间。其中:N(i)表示结点i中的关键字个数n。如果结点i为非叶子结点,则此结点有N(i)+1棵子树,PRT(i)指向结点i的父结点。KEY(i,j)是结点i的第j(1≤j≤2m)个关键字域。LINK(i,j)是结点i的第j(1≤j≤2m+1)个指针域。B-树的存储结

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。