Esempio n. 1
0
        public void Remove(DoublyLinkedListNode <T> removeNode)
        {
            if (head == null || removeNode == null)
            {
                return;
            }

            // 삭제할 노드가 헤드 노드이고 노드가 1개이면
            if (removeNode == head && head == head.Next)
            {
                head = null;
            }
            else
            {
                removeNode.Prev.Next = removeNode.Next;
                removeNode.Next.Prev = removeNode.Prev;
            }
            removeNode = null;
        }
Esempio n. 2
0
        public void Add(DoublyLinkedListNode <T> newNode)
        {
            if (head == null)
            {
                head      = newNode;
                head.Next = head;
                head.Prev = head;
            }
            else
            {
                // head의 끝은 항상 tail, 새 노드는 항상 맨 끝에 생성되므로 tail
                var tail = head.Prev;

                head.Prev    = newNode;
                tail.Next    = newNode;
                newNode.Prev = tail;
                newNode.Next = head;
            }
        }
Esempio n. 3
0
        public void Add(DoublyLinkedListNode <T> newNode)
        {
            if (head == null)
            {
                head = newNode;
            }
            else
            {
                var current = head;

                while (current != null && current.Next != null)
                {
                    current = current.Next;
                }
                // 현재 노드의 Next를 새 노드로 지정
                current.Next = newNode;
                // 새 노드의 Prev를 현재 노드로 지정
                newNode.Prev = current;
                // 새 노드의 다음은 null로 지정해야한다.
                newNode.Next = null;
            }
        }
Esempio n. 4
0
 public CircularLinkedList(T data, DoublyLinkedListNode <T> next, DoublyLinkedListNode <T> prev)
 {
     this.Data = data;
     this.Next = next;
     this.Prev = prev;
 }
Esempio n. 5
0
 public DoublyLinkedListNode(T data, DoublyLinkedListNode <T> prev, DoublyLinkedListNode <T> next)
 {
     this.Data = data;
     this.Prev = prev;
     this.Next = next;
 }