internal void Merge(SparseLinkedList <T> list) { Lock(); list.Lock(); Version++; list.Version++; MergeImpl(list); VerifyStructure(); list.VerifyStructure(); Unlock(); list.Unlock(); }
internal void Swap(int index, SparseLinkedList <T> list) { Lock(); list.Lock(); VerifyIndex(index); Version++; list.Version++; SwapImpl(list); VerifyStructure(); list.VerifyStructure(); Unlock(); list.Unlock(); }
internal void SplitAt(int index, SparseLinkedList <T> targetList) { Lock(); targetList.Lock(); VerifyIndex(index, true); Version++; targetList.Version++; SplitAtImpl(index, targetList); VerifyStructure(); targetList.VerifyStructure(); Unlock(); targetList.Unlock(); }