Added Missing method & fixed potential issue with TreeSetBiIterators
This commit is contained in:
+17
-3
@@ -1280,6 +1280,7 @@ public class AVL_TREE_SET KEY_GENERIC_TYPE extends ABSTRACT_SET KEY_GENERIC_TYPE
|
||||
{
|
||||
Entry KEY_GENERIC_TYPE lastReturned;
|
||||
Entry KEY_GENERIC_TYPE next;
|
||||
boolean forwards = false;
|
||||
boolean unboundForwardFence;
|
||||
boolean unboundBackwardFence;
|
||||
KEY_TYPE forwardFence;
|
||||
@@ -1305,6 +1306,7 @@ public class AVL_TREE_SET KEY_GENERIC_TYPE extends ABSTRACT_SET KEY_GENERIC_TYPE
|
||||
lastReturned = next;
|
||||
KEY_TYPE result = next.key;
|
||||
next = next.next();
|
||||
forwards = true;
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1319,13 +1321,14 @@ public class AVL_TREE_SET KEY_GENERIC_TYPE extends ABSTRACT_SET KEY_GENERIC_TYPE
|
||||
lastReturned = next;
|
||||
KEY_TYPE result = next.key;
|
||||
next = next.previous();
|
||||
forwards = false;
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove() {
|
||||
if(lastReturned == null) throw new IllegalStateException();
|
||||
if(lastReturned.needsSuccessor()) next = lastReturned;
|
||||
if(forwards && lastReturned.needsSuccessor()) next = lastReturned;
|
||||
set.removeNode(lastReturned);
|
||||
lastReturned = null;
|
||||
}
|
||||
@@ -1335,6 +1338,7 @@ public class AVL_TREE_SET KEY_GENERIC_TYPE extends ABSTRACT_SET KEY_GENERIC_TYPE
|
||||
{
|
||||
Entry KEY_GENERIC_TYPE lastReturned;
|
||||
Entry KEY_GENERIC_TYPE next;
|
||||
boolean forwards = false;
|
||||
boolean unboundForwardFence;
|
||||
boolean unboundBackwardFence;
|
||||
KEY_TYPE forwardFence;
|
||||
@@ -1360,6 +1364,7 @@ public class AVL_TREE_SET KEY_GENERIC_TYPE extends ABSTRACT_SET KEY_GENERIC_TYPE
|
||||
lastReturned = next;
|
||||
KEY_TYPE result = next.key;
|
||||
next = next.previous();
|
||||
forwards = false;
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1374,12 +1379,14 @@ public class AVL_TREE_SET KEY_GENERIC_TYPE extends ABSTRACT_SET KEY_GENERIC_TYPE
|
||||
lastReturned = next;
|
||||
KEY_TYPE result = next.key;
|
||||
next = next.next();
|
||||
forwards = true;
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove() {
|
||||
if(lastReturned == null) throw new IllegalStateException();
|
||||
if(forwards && lastReturned.needsSuccessor()) next = lastReturned;
|
||||
set.removeNode(lastReturned);
|
||||
lastReturned = null;
|
||||
}
|
||||
@@ -1390,6 +1397,7 @@ public class AVL_TREE_SET KEY_GENERIC_TYPE extends ABSTRACT_SET KEY_GENERIC_TYPE
|
||||
{
|
||||
Entry KEY_GENERIC_TYPE lastReturned;
|
||||
Entry KEY_GENERIC_TYPE next;
|
||||
boolean forwards = false;
|
||||
|
||||
public AscendingSetIterator(Entry KEY_GENERIC_TYPE first)
|
||||
{
|
||||
@@ -1407,6 +1415,7 @@ public class AVL_TREE_SET KEY_GENERIC_TYPE extends ABSTRACT_SET KEY_GENERIC_TYPE
|
||||
lastReturned = next;
|
||||
KEY_TYPE result = next.key;
|
||||
next = next.next();
|
||||
forwards = true;
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1421,13 +1430,14 @@ public class AVL_TREE_SET KEY_GENERIC_TYPE extends ABSTRACT_SET KEY_GENERIC_TYPE
|
||||
lastReturned = next;
|
||||
KEY_TYPE result = next.key;
|
||||
next = next.previous();
|
||||
forwards = false;
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove() {
|
||||
if(lastReturned == null) throw new IllegalStateException();
|
||||
if(lastReturned.needsSuccessor()) next = lastReturned;
|
||||
if(forwards && lastReturned.needsSuccessor()) next = lastReturned;
|
||||
removeNode(lastReturned);
|
||||
lastReturned = null;
|
||||
}
|
||||
@@ -1437,7 +1447,8 @@ public class AVL_TREE_SET KEY_GENERIC_TYPE extends ABSTRACT_SET KEY_GENERIC_TYPE
|
||||
{
|
||||
Entry KEY_GENERIC_TYPE lastReturned;
|
||||
Entry KEY_GENERIC_TYPE next;
|
||||
|
||||
boolean forwards = false;
|
||||
|
||||
public DescendingSetIterator(Entry KEY_GENERIC_TYPE first)
|
||||
{
|
||||
next = first;
|
||||
@@ -1454,6 +1465,7 @@ public class AVL_TREE_SET KEY_GENERIC_TYPE extends ABSTRACT_SET KEY_GENERIC_TYPE
|
||||
lastReturned = next;
|
||||
KEY_TYPE result = next.key;
|
||||
next = next.previous();
|
||||
forwards = false;
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1468,12 +1480,14 @@ public class AVL_TREE_SET KEY_GENERIC_TYPE extends ABSTRACT_SET KEY_GENERIC_TYPE
|
||||
lastReturned = next;
|
||||
KEY_TYPE result = next.key;
|
||||
next = next.next();
|
||||
forwards = true;
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove() {
|
||||
if(lastReturned == null) throw new IllegalStateException();
|
||||
if(forwards && lastReturned.needsSuccessor()) next = lastReturned;
|
||||
removeNode(lastReturned);
|
||||
lastReturned = null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user