예제 #1
0
파일: LinkedList.cs 프로젝트: huosk/Algo
 public LinkedList(IEnumerable <T> list)
 {
     this.headGuard = new LinkedNode <T>(default(T));
     if (list != null)
     {
         var p = this.headGuard;
         foreach (T item in list)
         {
             p.Next = new LinkedNode <T>(item);
             p      = p.Next;
             ++this.length;
         }
     }
 }
예제 #2
0
파일: LinkedList.cs 프로젝트: huosk/Algo
        public LinkedNode <T> InsertAfter(LinkedNode <T> node, T item)
        {
            if (node == null)
            {
                throw new ArgumentNullException("node is null");
            }

            var newNode = new LinkedNode <T>(item)
            {
                Next = node.Next
            };

            node.Next = newNode;

            this.length++;

            return(newNode);
        }
예제 #3
0
파일: LinkedList.cs 프로젝트: huosk/Algo
        private LinkedNode <T> ReverseHandler(LinkedNode <T> head)
        {
            if (head == null)
            {
                return(null);
            }

            if (head.Next == null)
            {
                this.headGuard.Next = head;
            }
            else
            {
                var remainHead = this.ReverseHandler(head.Next);
                remainHead.Next = head;
            }

            return(head);
        }
예제 #4
0
파일: LinkedList.cs 프로젝트: huosk/Algo
 public LinkedList()
 {
     this.headGuard = new LinkedNode <T>(default(T));
 }