Mercurial > hg > Members > kazuma > jungle-ormapper
view src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/data/treemap/EmptyNode.java @ 0:44465893e8b8
first Commit
author | Kazuma |
---|---|
date | Wed, 30 Nov 2016 01:47:55 +0900 |
parents | |
children |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.jungle.data.treemap; import org.junit.Assert; import org.junit.Test; import java.util.Comparator; public class EmptyNode<K, V> extends Node<K, V> { public EmptyNode() { super(null, null); } public EmptyNode(K key) { //keyは削除時の回転処理に使用する super(key, null); } @Override // 回転処理時にEmptyNodeの子を見ることがあるのでleft rightでEmptyNodeを返すようにする public Node<K, V> left() { return new EmptyNode<>(); } @Override public Node<K, V> right() { return new EmptyNode<>(); } @Override protected boolean isNotEmpty() { return false; } @Override public Node<K, V> createNode(K key, V value, Node<K, V> left, Node<K, V> right) { return new RedNode<>(key, value, new EmptyNode<>(), new EmptyNode<>()); } public Node<K, V> put(K k, V value) { return new RedNode<>(k, value, new EmptyNode<>(), new EmptyNode<>()); } @Override public rebuildNode<K, V> replaceNode(Node<K, V> parent, Comparator ctr) { // not use method return new rebuildNode<>(false, this); } @Override protected rebuildNode<K, V> deleteNode() { //not use method return new rebuildNode<>(false, this); } @Override Node<K, V> insBalance() { return this; } @Override Rotate checkRotate(Rotate side) { return Rotate.N; } @Override boolean isRed() { return false; } @Override @Test protected int checkDepth(int count, int minCount) { // test method if (count < minCount | minCount == 0) minCount = count; System.out.println("depth = " + count); Assert.assertTrue(count <= 2 * minCount); return minCount; } }