Пример #1
0
        public MyDoublyLinkedList(int value)
        {
            var firstNode = new DoubleNode(value);

            _head = firstNode;
            _tail = firstNode;
            _size = 1;
        }
Пример #2
0
        public void Prepend(int value)
        {
            var newNode = new DoubleNode(value);

            newNode.Next   = _head;
            _head.Previous = newNode;
            _head          = newNode;
            _size++;
        }
Пример #3
0
        public void Append(int value)
        {
            var newNode = new DoubleNode(value);

            newNode.Previous = _tail;
            _tail.Next       = newNode;
            _tail            = newNode;
            _size++;
        }
Пример #4
0
        public void Insert(int index, int value)
        {
            if (index == 0)
            {
                Prepend(value);
                return;
            }

            var newNode     = new DoubleNode(value);
            var currentNode = GetNode(index);
            var prevNode    = currentNode.Previous;

            newNode.Next     = currentNode;
            newNode.Previous = prevNode;

            currentNode.Previous = newNode;
            prevNode.Next        = newNode;

            _size++;
        }