view src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/TreeMap/RedNode.java @ 2:d8f78957698f

add getLoop
author tatsuki
date Sun, 29 Mar 2015 20:57:39 +0900
parents 969798e3d330
children 6928ef8ba6f0
line wrap: on
line source

package jp.ac.u_ryukyu.ie.cr.tatsuki.TreeMap;

import static jp.ac.u_ryukyu.ie.cr.tatsuki.TreeMap.Rotate.*;

/**
 * Created by e115731 on 15/03/25.
 */
public class RedNode<K, V> extends Node<K, V> {


    public RedNode(K key, V value, Node<K, V> left, Node<K, V> right) {
        super(key, value, left, right);
    }


    @Override
    public Node<K,V> clone() {
        return new RedNode<K,V>(key, value, left, right);
    }

    @Override
    protected boolean exitNode() {
        return true;
    }

    @Override
    public Node<K,V> createNode(K key, V value, Node<K, V> left, Node<K, V> right) {
        return new RedNode<K,V>(key, value, left, right);
    }

    @Override
    protected Node<K,V> balance() {
        return this;
    }

    @Override
    Rotate firstCheckColor(Rotate side) {

        if (side == L) {
            if (left.secondCheckColor())
                return R;

            else if (right.secondCheckColor())
                return LR;

            return N;
        } else {

            if (left.secondCheckColor())
                return RL;

            else if (right.secondCheckColor())
                return L;

            return N;
        }

    }

    @Override
    boolean secondCheckColor() {
        return true;
    }


}