public override void Insert(T value) { base.size++; SONode <T> newNode = new SONode <T>(value); lastNode.SetNext(newNode); lastNode = newNode; }
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; } } }
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); }