forked from Speiger/Primitive-Collections
Fixed AVLTrees pollFirst/pollLast
This commit is contained in:
parent
4a3cc66401
commit
73916f4fd9
|
@ -3,6 +3,7 @@
|
|||
|
||||
### Version 0.3.3
|
||||
- Added: Flat/Mapping function for Iterables/Iterators to help avoid streams for cleaner looking code
|
||||
- Fixed: AVLTrees pollFirst/Last is now keeping orders and is fixed
|
||||
|
||||
### Version 0.3.2
|
||||
- Fixed: Map.put wasn't referring to primitive variants.
|
||||
|
|
|
@ -767,11 +767,11 @@ public class AVL_TREE_MAP KEY_VALUE_GENERIC_TYPE extends ABSTRACT_MAP KEY_VALUE_
|
|||
entry.value = successor.value;
|
||||
entry = successor;
|
||||
}
|
||||
if(entry.previous() == null) first = entry.next();
|
||||
if(entry.next() == null) last = entry.previous();
|
||||
Entry KEY_VALUE_GENERIC_TYPE replacement = entry.left != null ? entry.left : entry.right;
|
||||
if(replacement != null) {
|
||||
if(entry.replace(replacement)) tree = replacement;
|
||||
if(entry == first) first = replacement;
|
||||
if(entry == last) last = entry.right != null ? entry.right : replacement;
|
||||
entry.left = entry.right = entry.parent = null;
|
||||
fixAfterDeletion(replacement);
|
||||
}
|
||||
|
@ -779,11 +779,6 @@ public class AVL_TREE_MAP KEY_VALUE_GENERIC_TYPE extends ABSTRACT_MAP KEY_VALUE_
|
|||
else {
|
||||
fixAfterDeletion(entry);
|
||||
entry.replace(null);
|
||||
if(entry.parent != null) {
|
||||
Entry KEY_VALUE_GENERIC_TYPE parent = entry.parent;
|
||||
if(entry == first) first = parent.left != null ? parent.left : parent;
|
||||
if(entry == last) last = entry.right != null ? parent.right : parent;
|
||||
}
|
||||
entry.parent = null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -514,11 +514,11 @@ public class AVL_TREE_SET KEY_GENERIC_TYPE extends ABSTRACT_SET KEY_GENERIC_TYPE
|
|||
entry.key = successor.key;
|
||||
entry = successor;
|
||||
}
|
||||
if(entry.previous() == null) first = entry.next();
|
||||
if(entry.next() == null) last = entry.previous();
|
||||
Entry KEY_GENERIC_TYPE replacement = entry.left != null ? entry.left : entry.right;
|
||||
if(replacement != null) {
|
||||
if(entry.replace(replacement)) tree = replacement;
|
||||
if(entry == first) first = replacement;
|
||||
if(entry == last) last = entry.right != null ? entry.right : replacement;
|
||||
entry.left = entry.right = entry.parent = null;
|
||||
fixAfterDeletion(replacement);
|
||||
}
|
||||
|
@ -526,11 +526,6 @@ public class AVL_TREE_SET KEY_GENERIC_TYPE extends ABSTRACT_SET KEY_GENERIC_TYPE
|
|||
else {
|
||||
fixAfterDeletion(entry);
|
||||
entry.replace(null);
|
||||
if(entry.parent != null) {
|
||||
Entry KEY_GENERIC_TYPE parent = entry.parent;
|
||||
if(entry == first) first = parent.left != null ? parent.left : parent;
|
||||
if(entry == last) last = entry.right != null ? parent.right : parent;
|
||||
}
|
||||
entry.parent = null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,8 +49,15 @@ public abstract class BaseIntSortedSetTest extends BaseIntCollectionTest
|
|||
public void pollTest() {
|
||||
if(getValidSortedSetTests().contains(SortedSetTest.POLL)) {
|
||||
IntSortedSet set = create(TEST_ARRAY);
|
||||
Assert.assertEquals(set.pollFirstInt(), 0);
|
||||
Assert.assertEquals(set.pollLastInt(), 99);
|
||||
for(int i = 0;i<100;i++)
|
||||
{
|
||||
Assert.assertEquals(i, set.pollFirstInt());
|
||||
}
|
||||
set = create(TEST_ARRAY);
|
||||
for(int i = 99;i>=0;i--)
|
||||
{
|
||||
Assert.assertEquals(i, set.pollLastInt());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue