当前位置: 首页 > news >正文

深圳市网站建设单位十佳重庆网站设计最佳科技

深圳市网站建设单位十佳,重庆网站设计最佳科技,高端品牌网站建设案例,微信公众号seo数据结构-平衡树 前置知识 二叉树二叉树的中序遍历 问题 维护一个数据结构,支持插入元素、删除元素、查询元素的排名、查询排名对应的元素、查询元素的前驱、查询元素的后继等。 BST(二叉搜索树) 作为一个基本无效(很容易卡掉…

数据结构-平衡树


前置知识
  • 二叉树
  • 二叉树的中序遍历

问题

维护一个数据结构,支持插入元素、删除元素、查询元素的排名、查询排名对应的元素、查询元素的前驱、查询元素的后继等。

BST(二叉搜索树)

作为一个基本无效(很容易卡掉)的数据结构,将其放在这里讲可能更为合适。。。
BST 的思想,来自于二叉树的 DFS 序。
设想一下,若一个二叉树的中序遍历正好递增,也就是说,始终有 左儿子 ≤ 根 ≤ 右儿子 左儿子\le根\le右儿子 左儿子右儿子,那么不就可以达到 O ( 树高 ) O(\text{树高}) O(树高) 的复杂度了吗?
可能不是这样。设想一组数据,令插入的第 i i i 个节点为 i i i,BST 便会退化为 O ( n 2 ) O(n^2) O(n2),长这样:

思路

为了弥补 BST 的各种劣势,聪明的 OIers 发明了平衡树。
对于上面卡掉 BST 的样例,平衡树的一种画法长这样:

可以看出来,平衡树是非常平衡的。
平衡树的重要处理就是维护其平衡性。
接下来介绍一下用来维护平衡树的平衡性质的两种操作——左旋( Zag \text{Zag} Zag)和右旋( Zig \text{Zig} Zig

  • Zag \text{Zag} Zag
    如果有一个失衡子树长这样:

    需要将节点 q \text q q 旋转至节点 p \text p p,我们可以这样:

    注意到,其中序遍历是不变的。
  • Zig \text{Zig} Zig
    如果有一个失衡子树长这样:

    需要将节点 q \text q q 旋转至节点 p \text p p,我们可以这样:

    注意到,其中序遍历是不变的。

由于不同的平衡树对失衡子树的处理方式是不同的,所以这里不再赘述,可以去下方的文章学习。


数据结构参数
  • 单次修改时间复杂度: Θ ( log ⁡ n ) \Theta(\log n) Θ(logn)
  • 单次查询时间复杂度: Θ ( log ⁡ n ) \Theta(\log n) Θ(logn)
  • 空间复杂度: Θ ( n ) \Theta(n) Θ(n)

接下来是三种基本的平衡树:

  • AVL
  • Treap
  • Splay
http://www.yayakq.cn/news/410931/

相关文章:

  • 网站开发易语言宁波优化网站排名软件
  • win8导航网站模板向国旗敬礼做时代新人网站
  • 网站系统建设的目标做一下网站需要什么条件
  • 周口河南网站建设注册资金是什么意思
  • 宁波招聘网站开发怎样编写网站
  • 网站系统建设架构国家住房和城乡建设部官网
  • 宁波建设网站多少钱wordpress文章标题字体
  • 银川市住房建设局网站温州建校官网
  • 如何建设公司网站购物网站导航素材代码
  • 做企业内部管理网站要多久用哪个网站做简历更好
  • 网站建设公司选哪家wordpress爆破工具
  • 教育网页设计网站装修公司的口碑排名
  • 国内外包网站wordpress 办公
  • 关于学校网站建设申请报告网络优化网站建设
  • 成都旅游网站建设规划h5与wordpress
  • 网站建设管理风险百盛联合建设集团有限公司网站
  • 什么网站程序可以做抽奖页面企业网站开发方案
  • 宁都网站建设单屏风格wordpress主题
  • 摄影网站开发综述开个游戏工作室要多少钱
  • 北京响应式网站建设企业解决方案官网
  • 泰安哪家做网站好想要导航提示页网站推广
  • 高效网站推广费用游戏打金工作室加盟
  • 教育网站建设案例哪个网站做攻略比较好
  • 馀姚网站建设电子商务网站推广的主要方法
  • 自己可以用百度云做网站吗建设网站西丽
  • 建设网站属于什么费用网站的版面布局
  • 企业如何加强互联网网站建设做网站建设赚钱吗
  • 凉山州建设局网站py怎么做网站
  • 赫章网站建设做婚纱摄影网站
  • 网站怎么做友情链接ps可以在哪个网站上做兼职