Exemple #1
0
        public override void Insert(T value)
        {
            base.size++;
            SONode <T> newNode = new SONode <T>(value);

            lastNode.SetNext(newNode);
            lastNode = newNode;
        }
Exemple #2
0
        public override void Remove(T value)
        {
            SONode <T> current = base.preHead;

            while (current.Next != null)
            {
                if (EqualityComparer <T> .Default.Equals(current.Next.Value, value))
                {
                    current.SetNext(current.Next.Next);
                    current.Next.SetNext(null);
                    break;
                }
            }
        }
Exemple #3
0
        public override bool Contains(T value)
        {
            SONode <T> prev = base.preHead;
            SONode <T> next = prev.Next;

            for (;
                 next != null;
                 next = next.Next)
            {
                if (EqualityComparer <T> .Default.Equals(next.Value, value))
                {
                    prev.SetNext(next.Next);
                    next.SetNext(preHead.Next);
                    preHead.SetNext(next);

                    return(true);
                }
            }

            return(false);
        }