美文网首页
mappingTree构造

mappingTree构造

作者: 海狩 | 来源:发表于2016-08-24 18:55 被阅读0次

添加结点MappingNode

增加子结点策略:每个结点下面有多个子节点,每个节点主要记录最左子结点和右兄弟结点,多个孩子时,子结点按照从大到小顺序从左到右进行排序。最右面的结点的有兄弟结点=null
root:root节点
leftMostChild :root结点的最左子结点
child:当前要插入的结点
position:遍历的计数器,记录遍历的当前结点
prev:遍历的计数器,记录遍历的当前节点的前一个结点

public void linkAsChild(final MappingNode child) {
1.leftMostChild 不存在,root添加child作为leftMostChild
if (this.leftMostChild == null) { this.leftMostChild = child;
2.leftMostChild存在,依次遍历子结点,从leftMostChild 开始:
} else { MappingNode prev = null; MappingNode position = this.leftMostChild; while (true) {
2.1position=null,遍历到最右,将child添加到最后一个子结点prev后
if (position == null) { prev.sibling = child; break; }
2.2child>position,
int c = child.getMapping().compareTo(position.getMapping()); if (c < 0) {
2.2.1prev==null,root添加child作为leftMostChild
child.sibling = position; if (prev == null) { this.leftMostChild = child;
2.2.2prev!=null,child插入prev和position中间
} else { prev.sibling = child; } break;
2.3child<=position,比较下一个结点,从1)开始
} else { prev = position; position = position.sibling; } } } }

图:

相关文章

  • mappingTree构造

    添加结点MappingNode 增加子结点策略:每个结点下面有多个子节点,每个节点主要记录最左子结点和右兄弟结点,...

  • Flutter 6种构造函数详解

    Flutter有生成构造函数、默认构造函数、命名构造函数、重定向构造函数、常量构造函数、工厂构造函数 一.生成构造...

  • 构造器(构造方法,构造函数)

    构造方法的作用是: 1.创建对象 2.给成员变量赋值(初始化成员变量),因为成员变量是对象级别的,所以成员变量只有...

  • C# 构造函数总结

    构造函数 构造函数分为:实例构造函数,静态构造函数,私有构造函数。 实例构造函数 1、构造函数的名字与类名相同。 ...

  • java面向对象之构造方法

    构造函数(构造方法、构造器、Constructor) 关于java类的构造函数 1、构造方法语法【修饰符列表】构造...

  • 8.构造方法与析构方法

    指定构造方法,便利构造方法,构造方法嵌套convenience构造方法继承,构造方法安全性检查4原则,可失败构造方...

  • scala:构造方法与apply

    scala中分主构造方法、辅助构造方法,辅助构造方法必须调用主构造方法 构造方法参数作用域 如果父类有主构造方法,...

  • Initialization in Swift

    简介 *自定义构造过程 *默认构造器 *值类型的构造器代理 *类的继承和构造过程 *可失败构造器 *必需构造器 *...

  • 构造方法、封装、关键字(this、static)和代码块的介绍

    1.构造方法 1.1 构造方法与成员方法的区别 构造方法分为无参构造和有参构造,其中有参构造方法和无参构造方法为方...

  • Javascript 基础之原型链

    构造函数、构造函数实例、构造函数原型 function Student (name) { } - 这是构造函数va...

网友评论

      本文标题:mappingTree构造

      本文链接:https://www.haomeiwen.com/subject/kfhosttx.html