Exemplo n.º 1
0
            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;
                }
            }
Exemplo n.º 2
0
            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);
                }
            }