linked list removes no longer set next/prev = nil
This commit is contained in:
parent
0e14e5cce5
commit
1e9d82f00e
16
util.d
16
util.d
@ -174,17 +174,16 @@ DLLRemove(T, U)(T* list, U* node, U* nil)
|
|||||||
node.next.prev = node.prev;
|
node.next.prev = node.prev;
|
||||||
node.prev.next = node.next;
|
node.prev.next = node.next;
|
||||||
}
|
}
|
||||||
|
|
||||||
node.prev = node.next = nil;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
DLLPushFront(T, U)(T* list, U* node, U* nil)
|
DLLPushFront(T, U)(T* list, U* node, U* nil)
|
||||||
{
|
{
|
||||||
|
node.prev = node.next = nil;
|
||||||
|
|
||||||
if (CheckNil(nil, list.first))
|
if (CheckNil(nil, list.first))
|
||||||
{
|
{
|
||||||
list.first = list.last = node;
|
list.first = list.last = node;
|
||||||
node.prev = node.next = nil;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -198,10 +197,11 @@ DLLPushFront(T, U)(T* list, U* node, U* nil)
|
|||||||
void
|
void
|
||||||
DLLPush(T, U)(T* list, U* node, U* nil)
|
DLLPush(T, U)(T* list, U* node, U* nil)
|
||||||
{
|
{
|
||||||
|
node.prev = node.next = nil;
|
||||||
|
|
||||||
if (CheckNil(nil, list.first))
|
if (CheckNil(nil, list.first))
|
||||||
{
|
{
|
||||||
list.first = list.last = node;
|
list.first = list.last = node;
|
||||||
node.prev = node.next = nil;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -320,17 +320,16 @@ SLLRemove(T, U)(T* list, U* node, U* prev, U* nil)
|
|||||||
{
|
{
|
||||||
prev.next = node.next;
|
prev.next = node.next;
|
||||||
}
|
}
|
||||||
|
|
||||||
node.next = nil;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pragma(inline) void
|
pragma(inline) void
|
||||||
SLLPushFront(T, U)(T* list, U* node, U* nil)
|
SLLPushFront(T, U)(T* list, U* node, U* nil)
|
||||||
{
|
{
|
||||||
|
node.next = nil;
|
||||||
|
|
||||||
if (CheckNil(nil, list.first))
|
if (CheckNil(nil, list.first))
|
||||||
{
|
{
|
||||||
list.first = list.last = node;
|
list.first = list.last = node;
|
||||||
node.next = nil;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -342,10 +341,11 @@ SLLPushFront(T, U)(T* list, U* node, U* nil)
|
|||||||
pragma(inline) void
|
pragma(inline) void
|
||||||
SLLPush(T, U)(T* list, U* node, U* nil)
|
SLLPush(T, U)(T* list, U* node, U* nil)
|
||||||
{
|
{
|
||||||
|
node.next = nil;
|
||||||
|
|
||||||
if (CheckNil(nil, list.first))
|
if (CheckNil(nil, list.first))
|
||||||
{
|
{
|
||||||
list.first = list.last = node;
|
list.first = list.last = node;
|
||||||
node.next = nil;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user