public static void swap(ref std_forward_list <T> _this, ref std_forward_list <T> _other)
        {
            std_forward_list <T> temp = _this;

            _this  = _other;
            _other = temp;
        }
        /// <summary>
        /// 静态方法,在单链表的尾部插入结点建立单链表,一般使用这个方法,符合逻辑
        /// </summary>
        /// <param name="items"></param>
        /// <returns></returns>
        public static std_forward_list <T> CreateListTail(T[] items)
        {
            std_forward_list_node <T> node = new std_forward_list_node <T>();

            std_forward_list <T> list = new std_forward_list <T>();

            node = list.Head.Next;

            for (int i = 0; i < items.Length; i++)
            {
                std_forward_list_node <T> p = new std_forward_list_node <T>(items[i]);

                if (list.Head.Next == null)
                {
                    list.Head.Next = p;
                }
                else
                {
                    node.Next = p;
                }
                node = p;
            }

            if (node != null)
            {
                node.Next = null;
            }
            return(list);
        }
        /// <summary>
        /// 静态方法,在单链表的头部插入结点建立单链表,造成链表中的数据与逻辑顺序相反
        /// </summary>
        /// <param name="items">数组</param>
        /// <returns></returns>
        public static std_forward_list <T> CreateListHead(T[] items)
        {
            std_forward_list <T> list = new std_forward_list <T>();

            for (int i = 0; i < items.Length; i++)
            {
                std_forward_list_node <T> p = new std_forward_list_node <T>(items[i]);

                p.Next         = list.Head.Next;
                list.Head.Next = p;
            }
            return(list);
        }
        /// <summary>
        /// 使用该方法的前提条件是,两个链表均以按非递减顺序排列
        /// </summary>
        /// <typeparam name="TItem"></typeparam>
        /// <param name="other"></param>
        /// <returns></returns>
        public std_forward_list <T> merge <TItem>(std_forward_list <T> other) where TItem : T
        {
            std_forward_list <T> linklist = new std_forward_list <T>();

            std_forward_list_node <T> p = Head.Next;

            std_forward_list_node <T> q = other.Head.Next;

            std_forward_list_node <T> s = new std_forward_list_node <T>();



            linklist.Head      = Head;
            linklist.Head.Next = null;


            while (p != null && q != null)
            {
                if (p.Data.CompareTo(q.Data) < 0)
                {
                    s = p;
                    p = p.Next;
                }
                else
                {
                    s = q;
                    q = q.Next;
                }

                linklist.Add(s.Data);
            }

            if (p == null)
            {
                p = q;
            }

            while (p != null)
            {
                s = p;
                p = p.Next;
                linklist.Add(s.Data);
            }

            return(linklist);
        }