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

大气装饰装修企业网站模版源码可以免费做网站

大气装饰装修企业网站模版源码,可以免费做网站,山东省建设局拖欠工资网站,百度权重查询网址二叉搜索树 任一节点x的左/右子树中#xff0c;所有非空节点均不大于#xff08;不小于#xff09;x 必须是所有的非空节点#xff0c;仅左右孩子不够#xff08;左孩子的右孩子可能很大#xff09;一棵二叉树是二叉搜索树当且仅当中序遍历序列是单调非降序列 两棵二叉… 二叉搜索树 任一节点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(h3)-1个节点进而n个节点的AVL树树高是O(logn)的。 【2012-THU-Fin】将[1481,1992]区间内的整数逐一插入到空AVL树中最后该AVL树的高度是CD A.7  B.8  C.9  D.10  E.以上都不对 共5122^9个元素至少为9。fib(13)-1232也可能是10。 失衡与重平衡 记UT(x)是因对节点x的操作而不满足AVL条件的节点集下假设调整前UT(x)非空 插入失衡 UT(x)中的元素都是x的祖先其不低于x的祖父节点且可能一直失衡到根节点 重平衡自下而上逐个修正 右旋转 左旋转 左-右旋转 右-左旋转 如果节点g的X孩子的Y子树插入导致的失衡 XY在g做X旋转X!Y先在X孩子做X旋转再在g做Y旋转如果插入导致了旋转调整那么本次插入不改变树高 每种旋转都是就地O(1)时间复杂度算法每次将消除一个节点的失衡而AVL树树高是O(logn)的即最多O(logn)次旋转时间复杂度共计O(logn) 删除失衡 UT(x)只有1个节点但可能出现节点的替换自下而上的失衡传播任何进入UT(x)的节点失衡前后高度不变要是失衡了删除部分来自更低的部分但高度取决于更高的子树 删除导致的旋转调整不保证不改变树高树高可能降低 时间复杂度O(logn) “34”平衡重构 单次重构为就地O(1)时间复杂度算法不计更新高度 【2014-THU-Fin】设在某新节点插入AVL树后尚待平衡化时最低失衡节点为g。若此时g的左、右孩子的平衡因子分别为-1和0则应通过C旋转使之重新恢复平衡。  A.zig  B.zigzag  C.zagzig  D.zag  E.不确定  【2016-THU-Fin】若AVL树插入元素的过程中发生了旋转操作则树高必不变。√ 【2016-THU-Fin】如果元素理想随机那么对二叉搜索树做平衡化处理对改进其渐进时间复杂度并没有什么实质的作用。× 伸展树 红黑树 B树
http://www.hkea.cn/news/14507435/

相关文章:

  • 做一个租房卖房的网站怎么做学做淘宝店的网站吗
  • 重庆建设工程招标造价信息网站免费商用自媒体图片网站
  • 美食 网站模板电商网站制作流程
  • 怎么利用QQ空间给网站做排名提升学历的好处有哪些
  • 网站建设的目的分析浏览器显示不安全网站建设
  • 南京电子商务网站建设wordpress建群站
  • 东莞网站制作公司是什么新闻最近的新闻
  • 绿色主色调网站服务平台型网站
  • wordpress如何设计主页seo外包公司需要什么
  • 咸宁建设网站泉州洛江住房和城乡建设局网站
  • 永久免费的网站地址wordpress添加备案信息
  • 承德住房和城乡建设局网站关闭了金乡网站建设公司
  • 平台网站怎么优化珠海市住房建设局网站
  • 网站建设公司合肥深圳产品展厅设计公司
  • Delphi 网站开发框架wordpress注入docker
  • 中国商检局做备案网站做网站制作的
  • 网站建设栏目设置从seo角度去建设网站
  • 广州网站建设报价表网页qq登录保护怎么关
  • 做网站开发需要学什么软件施工企业iso认证
  • 网站设计英语科技公司名称大全
  • 洛阳网站制作哪家好4399小游戏网页版入口
  • 网站设计师主要做什么企业网站免费建站
  • 门户网站字体小程序源码开发
  • 陕西省信用建设门户网站服务好的扬中网站优化
  • 网站被同行抄袭怎么办河南旅游网页设计
  • c 2015 做网站优班图搭建网站
  • WordPress一键开启全站SSL当当网站建设与易趣网站对比
  • 做网站需要编程么响应式网站设计图怎么做
  • 网站app怎么制作教程凡科网免费建站步骤及视频
  • 网站推广的正确方式做高仿网站有哪些