Пример #1
0
        public static DoublyLinkedListNode SortedInsert(this DoublyLinkedListNode head, int data)
        {
            var newNode = new DoublyLinkedListNode(data);

            if (head == null)
            {
                return(newNode);
            }
            if (data < head.data)   // Insert new node before head
            {
                newNode.next = head;
                head.prev    = newNode;
                return(newNode);
            }
            else
            {
                DoublyLinkedListNode cur = head, prev = null;
                while (cur != null && cur.data < data)
                {
                    prev = cur;
                    cur  = cur.next;
                }
                if (cur == null)
                {
                    prev.next    = newNode;
                    newNode.prev = prev;
                }
                else
                {
                    newNode.next  = cur;
                    newNode.prev  = cur.prev;
                    cur.prev.next = newNode;
                    cur.prev      = newNode;
                }
            }
            return(head);
        }
Пример #2
0
 public DoublyLinkedList()
 {
     this.head = null;
     this.tail = null;
 }
Пример #3
0
 public DoublyLinkedListNode(int nodeData)
 {
     this.data = nodeData;
     this.next = null;
     this.prev = null;
 }