예제 #1
0
        public void AppendTail(T value)
        {
            var node = new SinglyLinkedNode <T>(value);

            if (_tail == null)
            {
                _tail = node;
                _head = _tail;
            }
            else
            {
                node.SetNext(_tail);
                _tail = node;
            }

            Count++;
        }
예제 #2
0
        public T RemoveNext(SinglyLinkedNode <T> node)
        {
            var next = default(SinglyLinkedNode <T>);

            if (node.HasNext())
            {
                next = node.GetNext();
            }

            if (next.HasNext())
            {
                node.SetNext(next.GetNext());
            }
            else
            {
                throw new ArgumentException("Next is null");
            }

            Count--;
            return(next.Value);
        }