コード例 #1
0
ファイル: GuideNode.java プロジェクト: pjliu/Meeshquest
  protected void split() {
    int halfGuides = guides.size() / 2;
    int halfKids = halfGuides + 1;
    GuideNode<K, V> left =
        new GuideNode<K, V>(comparator, guides.subList(0, halfGuides), kids.subList(0, halfKids));
    GuideNode<K, V> right =
        new GuideNode<K, V>(
            comparator,
            guides.subList(halfGuides + 1, guides.size()),
            kids.subList(halfKids, kids.size()));
    left.setLeft(getLeft());
    left.setRight(right);
    getLeft().setRight(left);
    left.setParent(getParent());
    for (Node<K, V> kid : left.kids) {
      kid.setParent(left);
    }

    right.setLeft(left);
    right.setRight(getRight());
    getRight().setLeft(right);
    right.setParent(getParent());
    for (Node<K, V> kid : right.kids) {
      kid.setParent(right);
    }

    parent.insertKid(this, guides.get(halfGuides), left, right);
  }