關于鏈表操作,在C#當中微軟已經提供了一個LinkedList<T>的數據結構,通過這個類提供的一系列方法就能夠實現鏈表操作。
創新互聯是一家集網站建設,孝昌企業網站建設,孝昌品牌網站建設,網站定制,孝昌網站建設報價,網絡營銷,網絡優化,孝昌網站推廣為一體的創新建站企業,幫助傳統企業提升企業形象加強企業競爭力。可充分滿足這一群體相比中小企業更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們為更多的企業打造出實用型網站。
這里我提供一段代碼,這是在論壇里面有人提問時給出的代碼,它實現了自定義鏈表的操作(讀者可以在此基礎上進一步完善)。因為這段代碼涉及一些C#技巧,所以貼出來給初學者學習C#提供一點參考。
實體類:
/// <summary> /// 學生類 /// </summary> public class Student { public string Name { get; set; } public int Age { get; set; } public Student(string name, int age) { this.Name = name; this.Age = age; } public override string ToString() { return "\r\n" + this.Name + ":年齡" + this.Age + "歲"; } }
鏈表節點類:
/// <summary> /// 節點類 /// </summary> /// <typeparam name="T">泛型</typeparam> public class Node<T> { public T Data { get; set; } public Node<T> Next { get; set; } public Node(T data) { this.Data = data; this.Next = null; } /// <summary> /// 附加節點 /// </summary> /// <param name="newNode">新的節點</param> public void Append(Node<T> newNode) { //如果下一節點為null,則將新的節點指向下一節點 if (this.Next == null) { this.Next = newNode; } //如果下一節點不為null,則直接附加到下一節點 else { this.Next.Append(newNode); } } public override string ToString() { string output = this.Data.ToString(); if (this.Next != null) { output += " " + this.Next.ToString(); } return output; } }
鏈表類:
/// <summary> /// 鏈表類 /// </summary> /// <typeparam name="T">泛型</typeparam> public class LinkedList<T> { Node<T> headNode = null;//頭節點 /// <summary> /// 追加節點方法 /// </summary> /// <param name="data"></param> public void Add(T data) { if (headNode == null) { headNode = new Node<T>(data); } else { headNode.Append(new Node<T>(data)); } } /// <summary> /// 索引器,通過索引獲取節點 /// </summary> /// <param name="index"></param> /// <returns></returns> public T this[int index] { get { int temp = 0; Node<T> node = headNode; while (node != null && temp <= index) { if (temp == index) { return node.Data; } else { node = node.Next; } temp++; } return default(T); } } public override string ToString() { if (headNode != null) { return this.headNode.ToString(); } return string.Empty; } }
主函數:
class Program { static void Main(string[] args) { LinkedList<int> intList = new LinkedList<int>(); Enumerable.Range(0, 5).ToList<int>().ForEach(x => intList.Add(x)); Console.WriteLine("整型的內容為:{0}\r\n", intList); LinkedList<Student> students = new LinkedList<Student>(); students.Add(new Student("張三", 20)); students.Add(new Student("李四", 22)); students.Add(new Student("王五", 21)); Console.WriteLine(students[1].Name + "的年齡為:" + students[1].Age); Console.ReadLine(); } }
最后附錄一下微軟官方的鏈表類。https://msdn.microsoft.com/zh-cn/library/he2s3bh7(v=vs.110).aspx。
本文名稱:C#鏈表操作
文章源于:http://m.2m8n56k.cn/article8/jojgop.html
成都網站建設公司_創新互聯,為您提供品牌網站制作、動態網站、企業建站、搜索引擎優化、企業網站制作、網站收錄
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯