Cuando tu satisfacción se vuelve una decepción, resulta que el código de ayer estaba mal si lo pongo así quedo cómo estaba:
Código Java:
Ver original@Override
public V put(K key, V value) {
if(key != null){
Entry<K,V> z = new Entry(key, value);
Entry<K,V> y = null;
Entry<K,V> x = root;
int cmp = 0;
if(comparator != null){
while (x != null) {
y = x;
cmp = comparator.compare(key,x.key);
if(cmp < 0){
x = x.left;
} else if(cmp > 0) {
x = x.right;
} else {
x.value = value;
return value;
}
}
} else {
while (x != null) {
y = x;
Comparable<? super K> k = (Comparable<? super K>) key;
cmp = k.compareTo(x.key);
if(cmp < 0){
x = x.left;
} else if(cmp > 0) {
x = x.right;
} else {
x.value = value;
return value;
}
}
}
z.parent = y;
if(y == null){ // si pongo x en el ifme muestra 5 elementos sino me muestra 4
root = z;
} else if (cmp < 0) {
y.left = z;
} else {
y.right = z;
}
z.color = RED;
rbInsertFixup(z);
size++;
}
return null;
}
Espero sus respuestas y saludos.