//------------------------------------------------------------------------- static void _PushBefore(ViDoubleLinkNode2 <T> after, ViDoubleLink2 <T> list) { if (list.IsEmpty()) { return; } ViDoubleLinkNode2 <T> first = list._root._next; ViDoubleLinkNode2 <T> back = list._root._pre; ViDoubleLinkNode2 <T> pre = after._pre; _Link(pre, first); _Link(back, after); list._Init(); }
//------------------------------------------------------------------------- static void _PushAfter(ViDoubleLinkNode2 <T> before, ViDoubleLink2 <T> list) { if (list.IsEmpty()) { return; } ViDoubleLinkNode2 <T> first = list._root._next; ViDoubleLinkNode2 <T> back = list._root._pre; ViDoubleLinkNode2 <T> next = before._next; _Link(before, first); _Link(back, next); list._Init(); }