




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构与算法B树相关MySQL DBA 彭立勋树的基本概念查找树的基本操作二叉搜索树平衡二叉树平衡树算法(AVL/Treep/Splay)红黑树线段树B树原型B+树将要介绍什么?树的基本概念树是n(n=0)个结点的有限集。在任意一棵非空树中:(1)有且仅有一个特定的称为根的结点;(2)当n1时,其余结点可分为m(m0)个互不相交的有限集T1,T2,.Tm,其中每一个集合本身又是一棵树,并且称为根的子树.补充:从图来定义,树是一个无环的连通无向图。查找树的基本操作(1)SEARCH(S,k):返回有限集S中一个关键字为k的元素的指针x。即keyx=k。INSERT(S,x):将由x指向的元素添
2、加到S。DELETE(S,x):将由x指向的元素从S中删除。MINIMUM(S):返回全序集S中具有最小关键字的元素指针。MAXIMUM(S):返回全序集S中具有最大关键字的元素指针。查找树的基本操作(2)SUCCESSOR(S,x)(后继):返回全序集S中比x大的下一个元素的指针。PREDECESSOR(S,x)(前驱):返回全序集S中比x小的上一个元素的指针。二叉查找树定义:任取一颗子树,根节点都比左节点大(小),比右结点小(大)。递归定义二叉查找树搜索二叉查找树(复杂度O(LogN))TREE-SEARCH (x, k)1 if x= NIL or k = keyx2 then retu
3、rn x3 if k keyx4 then return TREE-SEARCH(leftx, k)5 else return TREE-SEARCH(rightx, k)二叉查找树搜索的例子二叉查找树获取最大/最小关键字元素(复杂度O(LogN))TREE-MINIMUM (x) /*TREE-MAXIMUM(x)*/1 while leftx NIL /* while rightx NIL*/2 do x leftx /* do x rightx*/3 return x二叉查找树获取前驱/后继(复杂度O(LogN))TREE-SUCCESSOR(x)1 if rightx NIL2 the
4、n return TREE-MINIMUM (rightx)3 y px4 while y NIL and x = righty5 do x y6 y py7 return y二叉查找树插入元素(复杂度O(LogN))TREE-INSERT(T, z)1 y NIL2 x rootT3 while x NIL4 do y x5 if keyz keyx6 then x leftx7 else x rightx8 pz y9 if y = NIL10 then rootT z Tree T was empty11 else if keyz O(N)平衡二叉树平衡二叉树本质上是一颗二叉查找树,但是
5、它是严格平衡的,即任一结点的左右子树高度差不超过1.平衡二叉树为什么要平衡随机生成的二叉查找树经过多次插入/删除操作之后平衡二叉树为什么要任一结点的左右子树高度差不超过1而不只是根节点平衡树算法(AVL)AVL树,严格平衡的二叉树旋转算法平衡树算法(AVL)单旋转(左旋/右旋)平衡树算法(AVL)双旋转(左右旋,右左旋)平衡树算法(其他)Splay:伸展树,也是利用旋转的方法,但是只做单旋转。Treep:为每个节点附加一个随机的优先级,规定优先级必须满足堆的性质的前提下对关键字执行基本二叉查找树的算法。红黑树红黑树是一种二叉查找树,但在每个节点上增加一个存储位表示结点的颜色,可以使RED/BLACK。通过对任何一条从根节点到叶子的路径上各个着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,因而是接近平衡的。线段树使用区间作为节点构成的查找树适用于区间统计计算和动态统计B树原型B树与红黑树的不同在于,B树的节点可以有许多子节点,所以B树的分支因子可能很大。B树原型分裂操作:当节点不能再增加元素时,节点会分裂成两个节点插入操作删除操作B+树在叶子节点上添加指向下一个节点的指针非叶子节点不保存实际关键字信息数据库
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45215-2025危险货物自反应物质和有机过氧化物引爆试验方法
- 停放车辆服务合同范本
- 加盟投资协议合同范本
- 住房购房合同范例
- 劳务家政合同范本
- 仪器安装服务合同范本
- 修路挖机合同范本
- 临时增项合同范本
- 北京公司担保合同范本
- 做楼房施工合同范本
- 2025年宝鸡职业技术学院单招职业技能测试题库及完整答案1套
- 2025年车位买卖合同模板电子版
- AI创作指令合集系列之-教案写作指令
- 《人工智能基础》课件-AI的前世今生:她从哪里来
- ISO28000:2022供应链安全管理体系
- 临床营养技术操作规范(2010版)
- 2024年沙洲职业工学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 大班安全《尖利的东西会伤人》课件
- 深圳市失业人员停止领取失业保险待遇申请表样表
- 英语四线三格模板
- JIS G4305-2021 冷轧不锈钢板材、薄板材和带材
评论
0/150
提交评论