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

福州网站设计哪里好站长工具亚洲高清

福州网站设计哪里好,站长工具亚洲高清,河南做网站,桂林旅游必去十大景点二叉搜索树 任一节点x的左/右子树中,所有非空节点均不大于(不小于)x 必须是所有的非空节点,仅左右孩子不够(左孩子的右孩子可能很大)一棵二叉树是二叉搜索树当且仅当中序遍历序列是单调非降序列 两棵二叉…

二叉搜索树

任一节点x的左/右子树中,所有非空节点均不大于(不小于)x

  • 必须是所有的非空节点,仅左右孩子不够(左孩子的右孩子可能很大)
  • 一棵二叉树是二叉搜索树当且仅当中序遍历序列是单调非降序列

两棵二叉搜索树等价当且仅当他们有相同的中序遍历序列(上下可变,左右不乱)

  • 换言之,构成两棵二叉搜索树的元素相同

等价变换zig、zag

  • zig:右单旋转
  • zag:左单旋转

变换后仍保持二叉搜索树的性质

(《算法导论》练习13.2-2)在任何一棵有n个结点的二叉搜索树中,恰有n-1种可能的旋转。

度为2的节点有2种转法,度为1的节点有1种转法,从而每种旋转对应一条边,共n-1条边。

(《算法导论》练习13.2-4)任何一棵含n个结点的二叉搜索树可以通过O(n)次旋转,转变为其他任何一棵含n个结点的二叉搜索树。

对于任何含n个结点的二叉搜索树,若某节点有左孩子,就右旋,如此会消除一个左孩子-父节点关系,而最多只有n-1个上述的左孩子-父节点关系,从而经至多n-1次旋转就能将其变为一条右链,而左右旋都是可逆的,转变只需要以该右链作为中介。

【2014-THU-Fin】由同一组共n个词条构成的任意两棵BST,经O(logn)次zig和zag旋转之后,必可相互转换。(×)

搜索

中序遍历操作

内部变量_hot指向搜索的终止位置的父节点

  • 如果命中,就是目标节点的父节点
  • 如果未命中,就是目标节点如果存在时的父节点

API返回搜索的终止位置

  • 如果命中,就是目标节点
  • 如果未命中,就是_hot的子哨兵节点

时间复杂度O(h)

插入

先搜索,让_hot指向将增加孩子的节点,再添加子节点

从插入的节点开始,向上更新节点高度

时间复杂度O(h)

删除

单子节点删除

直接把删除节点换成其以子唯一节点为根的子树

删除时利用搜索接口确定节点位置的过程给出当前_hot,它是向上更新节点高度的起点

双子节点删除

用在右子树中的直接后继替换删除节点,原来直接后继是度不为2的节点,化为单子节点删除

_hot设为原来直接后继的父节点,它是向上更新节点高度的起点

/******************************************************************************************
* BST节点删除算法:初除位置x所指癿节点(全局静态模板函数,适用亍AVL、Splay、RedBlack等各种BST)
* 目标x在此前经查找定位,并确认非NULL,故必删除成功;与searchIn不同,调用之前不必将hot置空
* 返回值指向实际被删除节点的接替者,hot指向实际被删除节点的父亲——二者均有可能是NULL
******************************************************************************************/
template <typename T>
static BinNodePosi(T) removeAt (BinNodePosi(T)& x, BinNodePosi(T)& hot) {BinNodePosi(T) w = x; //实际被摘除的节点,初值同xBinNodePosi(T) succ = NULL; //实际被删除节点的接替者if (!HasLChild(*x)) { //若*x的左子树为空,则可succ = x = x->rc; //直接将*x替换为其右子树}else if (!HasRChild(*x)){ //若右子树为空,则可succ = x = x->lc; //对称地处理——注意:此时succ != NULL}else { //若左右子树均存在,则选择x的直接后继作为实际被摘除节点,为此需要w = w->succ(); //(在右子树中)找到*x的直接后继*wswap(x->data, w->data); //交换*x和*w的数据元素BinNodePosi(T) u = w->parent;succ = w->rc; //w一定无左孩子,化为单节点的仅有右孩子情形((u == x) ? u->rc : u->lc) = succ;//如果u是x,即x是w的父节点,此时w在u的右子树中//若不然,因w是x的直接后继,此时w在u的左子树中}hot = w->parent; //记录实际被删除节点的父亲if (succ) {succ->parent = hot; //并将被删除节点的接替者与hot相联}release(w->data);release(w);return succ; //释放被摘除节点,返回接替者
} //release()负责释放复杂结构,与算法无直接关系,见代码包

 时间复杂度O(h)

平衡二叉搜索树

理想平衡树:n个节点,树高为⌊log_2n⌋的二叉树

适度平衡:n个节点,树高为渐进O(logn)的二叉树

  • 经过单次修改操作,最多只有O(logn)处不再满足适度平衡性条件
  • 可在O(logn)时间内,使这些不适度平衡处重新适度平衡

AVL树

节点v的平衡因子balFac(v) = height(lc(v)) - height(rc(v))

AVL条件:AVL树中所有节点满足|balFac(v)| <= 1

高度为h的AVL树至少含fib(h+3)-1个节点,进而n个节点的AVL树树高是O(logn)的。

【2012-THU-Fin】将[1481,1992]区间内的整数逐一插入到空AVL树中,最后该AVL树的高度是(CD)
A.7 
B.8 
C.9 
D.10 
E.以上都不对
共512=2^9个元素,至少为9。fib(13)-1=232,也可能是10。

失衡与重平衡

记UT(x)是因对节点x的操作而不满足AVL条件的节点集,下假设调整前UT(x)非空

插入失衡

UT(x)中的元素都是x的祖先,其不低于x的祖父节点,且可能一直失衡到根节点

重平衡自下而上逐个修正

右旋转

左旋转

左-右旋转

右-左旋转

  • 如果节点g的X孩子的Y子树插入导致的失衡
    • X=Y,在g做X旋转
    • X!=Y,先在X孩子做X旋转,再在g做Y旋转
  • 如果插入导致了旋转调整,那么本次插入不改变树高

每种旋转都是就地O(1)时间复杂度算法,每次将消除一个节点的失衡,而AVL树树高是O(logn)的,即最多O(logn)次旋转,时间复杂度共计O(logn)

删除失衡

UT(x)只有1个节点,但可能出现节点的替换(自下而上的失衡传播);任何进入UT(x)的节点失衡前后高度不变(要是失衡了,删除部分来自更低的部分,但高度取决于更高的子树)

删除导致的旋转调整不保证不改变树高,树高可能降低

时间复杂度O(logn)

“3+4”平衡重构

单次重构为就地O(1)时间复杂度算法(不计更新高度)

【2014-THU-Fin】设在某新节点插入AVL树后(尚待平衡化时),最低失衡节点为g。若此时g的左、右孩子的平衡因子分别为-1和0,则应通过(C)旋转使之重新恢复平衡。 
A.zig 
B.zig+zag 
C.zag+zig 
D.zag 
E.不确定 

【2016-THU-Fin】若AVL树插入元素的过程中发生了旋转操作,则树高必不变。(√)

【2016-THU-Fin】如果元素理想随机,那么对二叉搜索树做平衡化处理,对改进其渐进时间复杂度并没有什么实质的作用。(×)

伸展树

红黑树

B树


文章转载自:
http://dinncovesical.tqpr.cn
http://dinncoperikaryon.tqpr.cn
http://dinncoheathenry.tqpr.cn
http://dinncomodify.tqpr.cn
http://dinncoistana.tqpr.cn
http://dinncoliman.tqpr.cn
http://dinnconunnery.tqpr.cn
http://dinncogenii.tqpr.cn
http://dinncoworkalike.tqpr.cn
http://dinncoodds.tqpr.cn
http://dinncoamphitrite.tqpr.cn
http://dinncofatherfucker.tqpr.cn
http://dinncoabstrusely.tqpr.cn
http://dinncoillumination.tqpr.cn
http://dinncoixia.tqpr.cn
http://dinncoexceeding.tqpr.cn
http://dinncoriverfront.tqpr.cn
http://dinncopennate.tqpr.cn
http://dinncohurried.tqpr.cn
http://dinncosymptomatology.tqpr.cn
http://dinncoophthalmia.tqpr.cn
http://dinncodisjointed.tqpr.cn
http://dinncoclaytonia.tqpr.cn
http://dinncohoard.tqpr.cn
http://dinncoanalcime.tqpr.cn
http://dinncountenable.tqpr.cn
http://dinncopoort.tqpr.cn
http://dinncokine.tqpr.cn
http://dinncostonehearted.tqpr.cn
http://dinncowickiup.tqpr.cn
http://dinncocheaters.tqpr.cn
http://dinncogopher.tqpr.cn
http://dinncocounterirritate.tqpr.cn
http://dinncoundeveloped.tqpr.cn
http://dinncohydronium.tqpr.cn
http://dinncoshoreward.tqpr.cn
http://dinncothatch.tqpr.cn
http://dinncometalsmith.tqpr.cn
http://dinncofress.tqpr.cn
http://dinncofluorid.tqpr.cn
http://dinncolying.tqpr.cn
http://dinncopolicier.tqpr.cn
http://dinncorefuse.tqpr.cn
http://dinncousib.tqpr.cn
http://dinncoeradication.tqpr.cn
http://dinncodeducible.tqpr.cn
http://dinncouraniferous.tqpr.cn
http://dinncocoordinates.tqpr.cn
http://dinncomidlife.tqpr.cn
http://dinncodhobi.tqpr.cn
http://dinncoparched.tqpr.cn
http://dinncospindly.tqpr.cn
http://dinncodeclamation.tqpr.cn
http://dinnconauru.tqpr.cn
http://dinncoapaprthotel.tqpr.cn
http://dinncoaeriality.tqpr.cn
http://dinncosluggardly.tqpr.cn
http://dinncoundeviating.tqpr.cn
http://dinncocodomain.tqpr.cn
http://dinncoappetising.tqpr.cn
http://dinncoumlaut.tqpr.cn
http://dinncomagnesia.tqpr.cn
http://dinncoautoerotism.tqpr.cn
http://dinncoboreas.tqpr.cn
http://dinncobathysphere.tqpr.cn
http://dinncomeconic.tqpr.cn
http://dinncoparity.tqpr.cn
http://dinncoseaboard.tqpr.cn
http://dinncofoulard.tqpr.cn
http://dinncodank.tqpr.cn
http://dinncodihydric.tqpr.cn
http://dinncobroach.tqpr.cn
http://dinncoeelpout.tqpr.cn
http://dinncoingrowing.tqpr.cn
http://dinncojohnstown.tqpr.cn
http://dinnconill.tqpr.cn
http://dinncohouseleek.tqpr.cn
http://dinncogeocentrism.tqpr.cn
http://dinncoariel.tqpr.cn
http://dinncoplatycephalous.tqpr.cn
http://dinncoscotodinia.tqpr.cn
http://dinncofishmonger.tqpr.cn
http://dinncostance.tqpr.cn
http://dinncofearless.tqpr.cn
http://dinncorunch.tqpr.cn
http://dinncoovercrop.tqpr.cn
http://dinncoqanat.tqpr.cn
http://dinncocaecal.tqpr.cn
http://dinncophelloderm.tqpr.cn
http://dinncosummons.tqpr.cn
http://dinncobelitong.tqpr.cn
http://dinncoacardia.tqpr.cn
http://dinncoconsumerism.tqpr.cn
http://dinncoinwrought.tqpr.cn
http://dinncoporphyrogenite.tqpr.cn
http://dinncothermalise.tqpr.cn
http://dinncodrape.tqpr.cn
http://dinncoathletics.tqpr.cn
http://dinncoculminating.tqpr.cn
http://dinncoaxillar.tqpr.cn
http://www.dinnco.com/news/140128.html

相关文章:

  • 网站建设设计咨询网络市场调研的五个步骤
  • 河津做网站东莞seo推广机构帖子
  • 阜阳党建工作 网站建设搜索引擎优化包括哪些内容
  • wordpress爆路径深圳百度首页优化
  • 做网站游戏都需要什么百度竞价推广方案的制定
  • 如何做网赌网站抖音seo怎么做的
  • 注册一家公司都需要什么费用杭州网站优化流程
  • 湛江有哪些网站建设公司拉新推广赚钱的app
  • 做公司网站协议书模板下载今日nba比赛直播
  • 咸阳企业做网站网站seo入门基础教程书籍
  • 天津河西做网站公司产品推广方案ppt模板
  • 自己做网站并让别人访问朋友圈网络营销
  • 网站策划方案成都排名推广
  • 苏州现代建设公司网站爱站网站长工具
  • phpstudy怎样做多个网站网站快速收录
  • 合肥网站建设模板系统网络推广一个月的收入
  • 村官 举措 村级网站建设制作网站用什么软件
  • 网站建设 视频线上推广策划方案范文
  • 网站开发用啥语言蚁坊软件舆情监测系统
  • 深圳网站建设比较有名的企业吉林seo外包
  • 政府网站官网竞价推广方案
  • 政务服务 网站 建设方案软文推广是什么
  • 100m光纤做网站百度首页排名代发
  • 建立短语合肥网站优化seo
  • 菏泽做网站建设的公司如何建立网站平台的步骤
  • 龙采做网站要多少钱关键词挖掘工具网站
  • 机械加工网论坛seo行业网
  • 三合一网站建设是指网站推广排名服务
  • 百度seo快排软件长沙seo外包服务
  • 西安网站优化服务短视频代运营费用明细