public void AddIntoSkipList(Element x) { SkipListElement prev = null; SkipListElement current = StartElement; while (current != null) { if (current.Reference.Index > x.Index) { break; } prev = current; current = current.Next; } var newElement = new SkipListElement(); newElement.Reference = x; newElement.Next = current; if (prev == null) { StartElement = newElement; } else { prev.Next = StartElement; } }
public Element GetHighestElementLowerThan(Int64 elementId) { SkipListElement prev = null; SkipListElement current = StartElement; while (current != null) { if (current.Reference.Index >= elementId) { break; } prev = current; current = current.Next; } if (prev == null) { return(null); } else { return(prev.Reference); } }