예제 #1
0
        private void InsertAfterNode(SortedLinkedListNode node, SortedLinkedListNode newNode)
        {
            SortedLinkedListNode tmp = node.next;

            node.next    = newNode;
            newNode.next = tmp;
        }
예제 #2
0
        public void Add(string value)
        {
            SortedLinkedListNode newNode = new SortedLinkedListNode(value);

            if (head == null)
            {
                head = newNode;
            }
            else
            {
                if (newNode.CompareTo(head) <= 0)
                {
                    InsertBeforeNode(head, newNode);
                }
                else
                {
                    SortedLinkedListNode current = head;

                    while (current.next != null && newNode.CompareTo(current.next) > 0)
                    {
                        current = current.next;
                    }

                    InsertAfterNode(current, newNode);
                }
            }

            count++;
        }
예제 #3
0
        public SortedLinkedListNode Last()
        {
            SortedLinkedListNode node = head;

            while (node.next != null)
            {
                node = node.next;
            }

            return(node);
        }
예제 #4
0
        public override string ToString()
        {
            StringBuilder        sb   = new StringBuilder();
            SortedLinkedListNode node = head;

            while (node != null)
            {
                sb.Append(node.value).Append(" ");
                node = node.next;
            }

            return(sb.ToString());
        }
예제 #5
0
        public bool Contains(string value)
        {
            SortedLinkedListNode node = head;

            while (node != null)
            {
                if (node.value.Equals(value))
                {
                    return(true);
                }

                node = node.next;
            }

            return(false);
        }
예제 #6
0
        private void InsertBeforeNode(SortedLinkedListNode node, SortedLinkedListNode newNode)
        {
            if (node == head)
            {
                newNode.next = node;
                head         = newNode;
                return;
            }

            SortedLinkedListNode current = head;

            while (current.next != node)
            {
                current = current.next;
            }

            current.next = newNode;
            newNode.next = node;
        }