コード例 #1
0
        public void Add(T value)
        {
            var newNode = new Node <T>(value, null);

            tail.ChangePointer(newNode);
            tail = newNode;
        }
コード例 #2
0
        public void Delete(int index)
        {
            if (index >= Count || index < 0)
            {
                throw new IndexOutOfRangeException("Index was out of bounds");
            }
            var      pointer     = GetElementByIndex(index - 1);
            Node <T> prevPointer = pointer;

            pointer = pointer.next;
            var newPointer = pointer.next == default(Node <T>) ? null : pointer.next;

            prevPointer.ChangePointer(newPointer);
        }
コード例 #3
0
        public void Insert(T value, int index)
        {
            if (index >= Count || index < 0)
            {
                throw new IndexOutOfRangeException("Index was out of bounds");
            }
            if (index == 0)
            {
                head.ChangePointer(new Node <T>(value, head.next));
                return;
            }

            var pointer = GetElementByIndex(index - 1);

            var newPointer = new Node <T>(value, pointer.next == default(Node <T>)? null : pointer.next);

            pointer.ChangePointer(newPointer);
        }