国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#雙向鏈表LinkedList排序實現方法

2020-01-24 01:32:48
字體:
來源:轉載
供稿:網友

本文實例講述了C#雙向鏈表LinkedList排序實現方法。分享給大家供大家參考。具體如下:

1.函數

打印鏈表函數PrintLinkedList 和 排序函數SortLinkedList

注:下面代碼中的鏈表每項都是double類型,如果換做其他的類型或結構,則需要適當修改

/// <summary>/// 打印鏈表各結點信息/// </summary>/// <param name="ll"></param>private static void PrintLinkedList(LinkedList<double> ll, string title = ""){ //打印標題 Console.WriteLine(string.Format("-- {0} --",  string.IsNullOrWhiteSpace(title) ? "打印鏈表" : title)); //逐個結點打印鏈表 LinkedListNode<double> lln = ll.First; int counter = 0; while (lln != null) {  Console.WriteLine(string.Format("第 {0} 個結點值為 {1}",   counter++, lln.Value.ToString("#0.0")));  lln = lln.Next; }}/// <summary>/// 返回一個排序后的鏈表/// </summary>/// <param name="linkedlist">待排序鏈表</param>/// <param name="isAsc">true:升序/false:降序</param>/// <returns></returns>private static LinkedList<double> SortLinkedList( LinkedList<double> linkedlist, bool isAsc = true){ LinkedList<double> result = new LinkedList<double>(); foreach (double nodevalue in linkedlist) {  LinkedListNode<double> lln = result.First;  while (true)  {   if (isAsc) //升序排列時情況   {    if (lln == null)    {     result.AddLast(nodevalue);     break;    }    else if (nodevalue <= lln.Value)    {     result.AddBefore(lln, nodevalue);     break;    }    else    {     lln = lln.Next;    }   }   else //降序排列時情況   {    if (lln == null)    {     result.AddLast(nodevalue);     break;    }    else if (nodevalue >= lln.Value)    {     result.AddBefore(lln, nodevalue);     break;    }    else    {     lln = lln.Next;    }   }  } } return result;}

2.Main函數調用

static void Main(string[] args){ //測試用數組 double[] array = new double[]  {  3.5, 2.5, 6.2, 8.0, 1.3,   4.6, 5.5, 2.7, 8.4, 9.7 }; //生成鏈表ll LinkedList<double> ll = new LinkedList<double>(); for (int i = 1; i < array.Length; i++) {  ll.AddLast(array[i]); } //打印鏈表ll PrintLinkedList(ll, "原鏈表"); //對鏈表ll進行排序(升序) ll = SortLinkedList(ll); //打印排序后的鏈表ll PrintLinkedList(ll, "鏈表(升序)"); //對鏈表ll進行排序(降序) ll = SortLinkedList(ll, false); //打印排序后的鏈表ll PrintLinkedList(ll, "鏈表(降序)"); Console.ReadLine();}

3.運行結果:

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 福泉市| 沁阳市| 海宁市| 巨鹿县| 陕西省| 浦北县| 马山县| 安多县| 时尚| 盖州市| 年辖:市辖区| 梅州市| 凤庆县| 扎囊县| 电白县| 金湖县| 岢岚县| 桑日县| 江山市| 阿鲁科尔沁旗| 株洲市| 赣州市| 阿坝| 新建县| 康乐县| 永和县| 本溪市| 乌兰浩特市| 绿春县| 台前县| 张家港市| 盐津县| 卢氏县| 闻喜县| 新龙县| 利辛县| 米泉市| 公主岭市| 大厂| 武安市| 广宗县|