示例#1
0
        public CircleListNode <T> RemoveNext(CircleListNode <T> node)
        {
            var nodeToRemove = node.Next;

            node.Next = nodeToRemove.Next;
            return(nodeToRemove);
        }
示例#2
0
        public CircleListNode <T> AddAfter(CircleListNode <T> node, CircleListNode <T> nextNode)
        {
            if (node == null)
            {
                throw new NullReferenceException(nameof(node));
            }
            if (nextNode == null)
            {
                throw new NullReferenceException(nameof(nextNode));
            }

            nextNode.Next = node.Next;
            node.Next     = nextNode;
            return(nextNode);
        }
示例#3
0
        public CircleList(IEnumerable <T> items)
        {
            CircleListNode <T> previous = null;

            foreach (var item in items)
            {
                var node = new CircleListNode <T>(item);
                if (First == null)
                {
                    First     = node;
                    node.Next = First;
                }
                else
                {
                    AddAfter(previous, node);
                }
                previous = node;
            }
        }
示例#4
0
 public CircleListNode <T> AddAfter(CircleListNode <T> node, T value)
 {
     return(AddAfter(node, new CircleListNode <T>(value)));
 }