日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

链表+优先级

發(fā)布時(shí)間:2024/4/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 链表+优先级 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

==================================Document.cs

?using?System; using?System.Collections.Generic; using?System.Linq; using?System.Text; using?System.Threading.Tasks; namespace?ConsoleApplication4 {public?class?Document//文檔類{public?string?Title?{?get;?private?set;?}//標(biāo)題public?string?Content?{?get;?private?set;?}//內(nèi)容public?byte?Priority?{?get;?private?set;?}//優(yōu)先級(jí)public?Document(string?title,?string?content,?byte?priority){this.Title?=?title;this.Content?=?content;this.Priority?=?priority;}public?override?string?ToString(){return?string.Format("標(biāo)題:{0},內(nèi)容:{1},優(yōu)先級(jí):{2}",?this.Title,?this.Content,?this.Priority);}} }

==================================PriorityDocumentManage.cs【核心】

using?System; using?System.Collections.Generic; using?System.Linq; using?System.Text; using?System.Threading.Tasks; using?System.Collections; namespace?ConsoleApplication4 {public?class?PriorityDocumentManage:IEnumerable{//鏈表private?readonly?LinkedList<Document>?documentList;//優(yōu)先級(jí)節(jié)點(diǎn)private?readonly?List<LinkedListNode<Document>>?priorityNodes;public?PriorityDocumentManage(){//初始化鏈表documentList?=?new?LinkedList<Document>();//初始化優(yōu)先級(jí)節(jié)點(diǎn)priorityNodes?=?new?List<LinkedListNode<Document>>();//設(shè)置優(yōu)先級(jí)為0~9for?(int?i?=?0;?i?<?10;?i++){priorityNodes.Add(new?LinkedListNode<Document>(null));}}//向鏈表中添加文檔public?void?AddDocument(Document?d){if?(d?==?null)?throw?new?ArgumentNullException("對(duì)象不能為空");AddDcoumentToPriorityNode(d,?d.Priority);}private?void?AddDcoumentToPriorityNode(Document?doc,?int?priority){if?(priority?>?9?||?priority?<?0)?throw?new?ArgumentException("優(yōu)先級(jí)溢出");if?(priorityNodes[priority].Value?==?null)//該優(yōu)先級(jí)節(jié)點(diǎn)的值為空,說(shuō)明鏈表中還沒(méi)有存在該優(yōu)先級(jí)的元素{--priority;if?(priority?>=?0)//繼續(xù)往更低的優(yōu)先級(jí)下面找{AddDcoumentToPriorityNode(doc,?priority);}else//進(jìn)入此方法,說(shuō)明是第一個(gè)插入鏈表的元素{documentList.AddLast(doc);//將元素插入到鏈表的最后位置priorityNodes[doc.Priority]?=?documentList.Last;//把傳入的元素賦值給對(duì)應(yīng)優(yōu)先級(jí)的優(yōu)先級(jí)節(jié)點(diǎn)}}else{LinkedListNode<Document>?currentDoc?=?priorityNodes[priority];if?(doc.Priority?==?priority)//優(yōu)先級(jí)節(jié)點(diǎn)存對(duì)應(yīng)的優(yōu)先級(jí)已存在元素【優(yōu)先級(jí)節(jié)點(diǎn)只存對(duì)應(yīng)優(yōu)先級(jí)最后添加的元素】{documentList.AddAfter(currentDoc,?doc);//將元素插入到對(duì)應(yīng)元素的后面priorityNodes[doc.Priority]?=?currentDoc.Next;//將對(duì)應(yīng)的優(yōu)先級(jí)節(jié)點(diǎn)賦值為對(duì)應(yīng)優(yōu)先級(jí)最后添加的元素}else//說(shuō)明不是傳入元素對(duì)應(yīng)的優(yōu)先級(jí)節(jié)點(diǎn){while?(currentDoc.Previous?!=?null?&&?currentDoc.Previous.Value.Priority?==?priority)//找到該優(yōu)先級(jí)最前面的元素{currentDoc?=?currentDoc.Previous;}documentList.AddBefore(currentDoc,?doc);//插入該元素的前面priorityNodes[doc.Priority]?=?currentDoc.Previous;//將對(duì)應(yīng)的優(yōu)先級(jí)節(jié)點(diǎn)賦值為對(duì)應(yīng)優(yōu)先級(jí)最后添加的元素}}}public?IEnumerator?GetEnumerator(){return?documentList.GetEnumerator();}//找到第一個(gè)元素,并刪除該元素public?Document?GetDocument(){Document?d?=?documentList.First.Value;documentList.RemoveFirst();return?d;}} }

==================================主程序

using?System; using?System.Collections.Generic; using?System.Linq; using?System.Text; using?System.Threading.Tasks; namespace?ConsoleApplication4 {class?Program{static?void?Main(string[]?args){PriorityDocumentManage?pdm?=?new?PriorityDocumentManage();pdm.AddDocument(new?Document("a",?"a",?5));pdm.AddDocument(new?Document("b",?"b",?5));pdm.AddDocument(new?Document("c",?"c",?8));pdm.AddDocument(new?Document("d",?"d",?5));pdm.AddDocument(new?Document("e",?"e",?6));foreach?(var?item?in?pdm){Console.WriteLine(item);}Console.ReadKey();}} }

轉(zhuǎn)載于:https://blog.51cto.com/962410314/1546904

總結(jié)

以上是生活随笔為你收集整理的链表+优先级的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。