public void AddLast(int n) { CircleNode lastNode = Nodes.Last(); if (lastNode.Count >= 1000) { Nodes.AddLast(new CircleNode()); lastNode = Nodes.Last(); } lastNode.AddLast(n); }
public void AddAfter(CircleCursor cursor, IEnumerable <int> toAdd) { CircleNode node = cursor.Outer.Value; LinkedListNode <int> current = cursor.Inner; foreach (int n in toAdd) { node.AddAfter(current, n); current = current.Next; } if (node.Count > 2000) { CircleNode newNode = new CircleNode(); Nodes.AddBefore(cursor.Outer, newNode); for (int i = 0; i < 1000; ++i) { int val = node.Ordered.First.Value; node.RemoveFirst(); newNode.AddLast(val); } } }