【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();
        }
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章