BTreeValueList: added Shift(),Pop()
parent
cfe09dc39d
commit
86399306a9
|
@ -108,7 +108,32 @@ namespace ln.types.btree
|
|||
bTree.Clear();
|
||||
}
|
||||
|
||||
public IEnumerable<K> Keys => bTree.Keys;
|
||||
public V Shift()
|
||||
{
|
||||
K k = bTree.First();
|
||||
if (bTree.TryGet(k,out List<V> values))
|
||||
{
|
||||
V f = values[0];
|
||||
Remove(k, f);
|
||||
return f;
|
||||
}
|
||||
throw new Exception("Serious BUG");
|
||||
}
|
||||
public V Pop()
|
||||
{
|
||||
K k = bTree.Last();
|
||||
if (bTree.TryGet(k, out List<V> values))
|
||||
{
|
||||
V f = values[values.Count-1];
|
||||
Remove(k, f);
|
||||
return f;
|
||||
}
|
||||
throw new Exception("Serious BUG");
|
||||
}
|
||||
|
||||
|
||||
|
||||
public IEnumerable<K> Keys => bTree.Keys;
|
||||
public IEnumerable<V> Values => bTree.Values.SelectMany(vl => vl);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue