fix sll & hashtable bugs
This commit is contained in:
parent
608f527ca5
commit
c5c58fd986
5
util.d
5
util.d
@ -139,6 +139,8 @@ DLLPop(T, U)(T* list, U* nil)
|
||||
{
|
||||
U* node = list.first;
|
||||
|
||||
if (!CheckNil(nil, list.first))
|
||||
{
|
||||
if(list.first == list.last)
|
||||
{
|
||||
list.first = list.last = nil;
|
||||
@ -148,6 +150,7 @@ DLLPop(T, U)(T* list, U* nil)
|
||||
list.first = list.first.next;
|
||||
list.first.prev = nil;
|
||||
}
|
||||
}
|
||||
|
||||
return node;
|
||||
}
|
||||
@ -518,7 +521,7 @@ Delete(K, V)(HashTable!(K, V)* ht, K key)
|
||||
|
||||
auto list = GetList(ht, key);
|
||||
auto prev = ht.nil;
|
||||
for(auto node = list.first; !CheckNil(ht.nil, node); node = node.next)
|
||||
for(auto node = list.first; !CheckNil(ht.nil, node); prev = node, node = node.next)
|
||||
{
|
||||
if(node.value.key == key)
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user