首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

伸展

没看懂,多看几遍吧 1 简介: 伸展树,或者叫自适应查找树,是一种用于保存有序集合的简单高效的数据结构。伸展树实质上是一个二叉查找树。...由于伸展树可以适应需求序列,因此他们的性能在实际应用中更优秀。 伸展树支持所有的二叉树操作。伸展树不保证最坏情况下的时间复杂度为O(logN)。伸展树的时间复杂度边界是均摊的。...4 基本的自底向上伸展树:     应用伸展(splaying)技术,可以得到对数均摊边界的时间复杂度。     在旋转的时候,可以分为三种情况: 1、zig情况。  ...5 基本伸展树操作: 1、插入:     当一个节点插入时,伸展操作将执行。因此,新插入的节点在根上。 2、查找:     如果查找成功(找到),那么由于伸展操作,被查找的节点成为树的新根。...6 自顶向下的伸展树:     在自底向上的伸展树中,我们需要求一个节点的父节点和祖父节点,因此这种伸展树难以实现。因此,我们可以构建自顶向下的伸展树。

1.2K90

伸展树(splay tree)

这是这点不同导致了伸展树的效果是很好的。 下面的这组图是自底向上的展开策略 ? ? ? 正是在这种情形下的双层伸展,才导致树平均每次会降低一半深度。...这样的伸展操作将深度大大降低了。...测试结果也说明了伸展树并没有避免生成斜二叉树,但是它在后续的伸展过程中不会出现恶性循环,使得树最终还可能是斜二叉树。一般而言经过为数不多的操作之后,伸展树都将几乎是平衡的,并且深度是较浅的。...伸展树的表现是良好的,它的代码运行的很快。...因此,我们通常使用自顶向下的伸展树,它只用到了O(1)的额外空间,但是却保持了O(logN)的摊还时间。无疑,自顶向下的伸展树比自底向上的伸展树要好得多。

1.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

伸展树的特性及实现

伸展树无需时刻都严格地保持全树的平衡,但却能够在任何足够长的真实操作序列中,保持分摊意义上的高效率。...伸展树也不需要对基本的二叉树节点结构,做任何附加的要求或改动,更不需要记录平衡因子或高度之类的额外信息,故适用范围更广。...逐层伸展每访问过一个节点之后,随即反复地以它的父节点为轴,经适当的旋转将其提升一层,直至最终成为树根。...在各次访问之后,为将对应节点伸展调整至树根,分别需做4、4、3、2和1次旋转。...双层伸展为克服上述伸展调整策略的缺陷,一种简便且有效的方法就是:将逐层伸展改为双层伸展。 具体地,每次都从当前节点v向上追溯两层(而不是仅一层),并根据其父亲p以及祖父g的相对位置,进行相应的旋转。

96630

【CSS】盒子边框 ② ( 盒子边框单独指定语法 )

文章目录 一、边框单独指定语法 二、代码示例 1、边框单独指定代码示例 2、设置表单边框代码示例 一、边框单独指定语法 ---- 盒子的 边框 Border , 由 四个方向 的边框组成 , 左上右下...四个 方向 上的 边框 可以单独指定样式 , 如 : 上边框指定 4 像素 的 红色 实线 , 下边框 指定 2 像素 的 灰色 虚线 ; 边框单独指定 语法 : 上边框 : 上边框样式 : 通过...通过 border-top 属性设置 ; 下边框 : 下边框样式 : 通过 border-bottom-style 属性设置 ; 下边框宽度 : 通过 border-bottom-width 属性设置...; 下边框颜色 : 通过 border-bottom-color 属性设置 ; 总体写法 : 通过 border-bottom属性设置 ; 左边框 : 左边框样式 : 通过 border-left-style...属性设置 ; 右边框 : 右边框样式 : 通过 border-right-style 属性设置 ; 右边框宽度 : 通过 border-right-width 属性设置 ; 右边框颜色 : 通过

3K20

面试官问我:什么是 “伸展树” ?

今天,我们来介绍一种更有意思的自平衡二叉树:伸展树。它的英文名字是Splay Tree。...Part 1 为什么要伸展 我们来回顾一下,二叉搜索树满足:左子结点 < 当前结点 < 右子结点 为什么要有平衡树呢?...可是,经过测试,伸展树与其他平衡树的速度大同小异。 1.13 与其他平衡树比较 红黑树 AVL fhq treap splay(伸展树) 速度最快 最平衡,查找最快 代码最好打 ?...这么看伸展树就一打酱油的,那这个东西到底有什么意义呢? 伸展树的优势在于操作多 欲知后事如何,且听下回分解!...伸展树算法偏难,你若有什么问题,欢迎回复,或者在LOJ的讨论[8]中发出你的观点。 讨论中可能会跟进一些内容(如前趋后继的更好实现、勘误)。

99230

【CSS】盒子边框 ① ( 网页布局本质 | 盒子模型 | 盒子边框 Border | border-width 宽度 | border-style 边框样式 | 边框颜色 | 边框设置综合写法 )

文章目录 一、网页布局本质 二、盒子模型 三、盒子边框 Border 1、CSS 2.0 文档查询 2、边框设置语法 3、边框设置综合写法 一、网页布局本质 ---- 构建一个网页 , 首先 , 创建盒子模型...与 内容 之间 ; 边框 Border : 边框 包裹 内边距 , 在 外边距 与 内边距 之间 , 边框 1 像素 ; 外边距 Margin : 最外层 元素 , 与其它盒子的距离 ; 三、盒子边框...边框设置语法 边框设置语法 : 设置边框宽度 : border-width 属性值为 像素值 ; border-width: 10px; 设置边框样式 : border-style 属性值 设置边框样式..., 可设置的值由如下选择 : none : 默认选项 , 忽略边框宽度 ; solid : 设置 实线边框 ; dashed : 设置 虚线边框 ; dotted : 设置 点线边框 ; border-style...-点线 ; 边框样式-虚线 : 边框样式-实线 : 3、边框设置综合写法 盒子边框设置综合写法 : 在 border 属性 后设置 边框宽度 边框样式 边框颜色 三个值 , 使用空格隔开

3.1K20

数据结构(7)-- Splay tree(伸展树)

文章目录 前言 伸展树 自底向上旋转 更进一步:展开 情况一:之字型(zig-zag) 情况二:一字型(zig-zig) 示例 伸展树的节点删除 自顶向下伸展树 zig(单旋转) zig-zig...(一字型旋转) zig-zag(之字型旋转) 合并树 我一直没看懂的示例 自顶向下伸展树代码手写 前言 之前也写过两篇关于伸展树的,一篇是概念,一篇是实现。...---- 伸展树 现在我们来介绍一种相对与AVL树更简单的数据结构,它叫伸展树,它保证从空树开始连续任意M次操作最多花费O(MlogN)时间。...伸展树是基于这样的事实:对于二叉查找树来说,每次操作的最坏时间为O(N),并不坏,只要它不时常发生就行。...每次对伸展树进行操作后,它均会通过旋转的方法把被访问节点旋转到树根的位置。

75720

【CSS】盒子边框 ③ ( 设置表格细线边框 | 合并相邻边框 border-collapse: collapse; )

文章目录 一、设置表格细线边框 1、表格示例 2、合并相邻边框 3、完整代码示例 一、设置表格细线边框 ---- 1、表格示例 给定一个 HTML 结构中的表格 , 默认样式如下 : 设置表格细线边框 <base...为 table 设置边框 : table { border: 1px solid blue; } 显示效果 : 上述效果只有表格的边框 , 内部的单元格的边框没有设置 , 为 表头单元格...单元格 之间 的边框 , 单元格 与 表格 之间 的边框 , 出现了重叠 , 每个重叠处都有 两条线 ; 设置 border-collapse: collapse; CSS 样式 , 可以 将 相邻的边框...合并在一起 , 合并边框后的效果 : 3、完整代码示例 完整代码示例 : <!

2.7K20

table边框设置

table边框设置 一、表格的常用属性 基本属性有:width(宽度)、height(高度)、border(边框值)、cellspacing(表格的内宽,即表格与tr之间的间隔)、 cellpadding...(表格内元素的间隔,即tr与tr之间的间隔)、bordercolorlight(表格的亮边框颜色)、 bordercolordark(表格的暗边框颜色)、bgcolor(表格的背景色)、background...(表格的背景图片)、 bordercolor(表格边框的颜色), 二、table边框单线的实现方法 现在给出效果图: 1、实现方法一:实现原理:利用table的单元格之间的间距(cellspacing...注意:只对表格的外边框起作用,对内部边、线不起作用 只显示上边框只显示下边框 只显示左、右边框 只显示上、下边框 只显示左边框 只显示右边框 不显示任何边框 看一下对比效果吧...这是不显示任何边框的表

2.8K50
领券