【C#数据结构】单链表

C#实现

首先,构造一个单链表的节点类:

    class Link<T>
    {
        public T Data;
        public Link<T> Next;
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="data"></param>
        /// <param name="next"></param>
        public Link(T data, Link<T> next = null)
        {
            Data = data;
            Next = next;
        }
    }

然后是以这个节点类为基础,创建单链表类:这里简单实现了单链表的两个功能添加和输出

    class LinkList<T>
    {
        Link<T> Head = new Link<T>(default(T), null);
        /// <summary>
        /// 增加数据
        /// </summary>
        public void AddData(T Data)
        {
            Link<T> link = new Link<T>(Data);

            if (link.Data.GetType() != Head.Data.GetType())
            {
                throw new Exception("添加的类型和之前的不一样");
            }
            if (Head.Next == null)
            {
                Head.Next = link;
            }
            else if (Head.Next != null)
            {
                link.Next = Head.Next;
                Head.Next = link;
            }
        }
        /// <summary>
        /// 打印全部数据
        /// </summary>
        public void PrintAllData()
        {
            Link<T> TempHead = Head;
            while (TempHead.Next != null)
            {
                Console.WriteLine(TempHead.Next.Data);
                TempHead = TempHead.Next;
            }
        }
    }

测试的话,可以拿下面这个Main函数测试:

class MainTest
    {
        static void Main(string[] args)
        {
            LinkList<int> Test = new LinkList<int>();
            int[] array = { 1, 25, 12, 33, 26, 33, 63 };
            for (int i = 0; i < array.Length; i++)
            {
                Test.AddData(array[i]);
            }
            Test.PrintAllData();
        }
    }

 

posted @ 2019-10-19 22:25  Aatr0xd  阅读(20)  评论(0编辑  收藏  举报