资料结构与演算法[2]

继上篇,先把这些容器的基本语法学起来

跟上一篇同样的图 :
http://img2.58codes.com/2024/20114067B1zuNm9TSk.png

http://img2.58codes.com/2024/20114067ahjrUmR11Q.png

Dictionary

程式码 :

Dictionary<int, string> dictionary = new Dictionary<int, string>();dictionary.Add(2, "AA");dictionary.Add(23, "BB");dictionary.Add(5, "CC");dictionary.Add(1, "DD");foreach (var item in dictionary){    Console.WriteLine($"key = {item.Key} , value = {item.Value}");}

执行结果 :

http://img2.58codes.com/2024/20114067bTV8aplfE4.png

SortDictionary

程式码 :

SortedDictionary<int, string> sortedDictionary    = new SortedDictionary<int, string>();sortedDictionary.Add(2, "AA");sortedDictionary.Add(23, "BB");sortedDictionary.Add(5, "CC");sortedDictionary.Add(1, "DD");foreach (var item in sortedDictionary){    Console.WriteLine($"key = {item.Key} , value = {item.Value}");}

执行结果 :

http://img2.58codes.com/2024/20114067GmoACod80h.png

如果要对类别做排列的话 :

程式码 :

internal class Person{    public int Age { get; set; }    public string Name { get; set; }}

实作ICompare并定义排序条件

internal class PersonComparer : IComparer<Person>{    public int Compare(Person p1, Person p2)    {        int result;        result = p1.Age.CompareTo(p2.Age);        if (result == 0)            result = p1.Name.CompareTo(p2.Name);        return result;    }}

宣告时放入PersonComparer

SortedDictionary<Person, string> sortedDictionary2    = new SortedDictionary<Person, string>(new PersonComparer());sortedDictionary2.Add(new Person { Name = "BB", Age = 6 }, "BB2");sortedDictionary2.Add(new Person { Name = "AA", Age = 7 }, "AA2");sortedDictionary2.Add(new Person { Name = "A", Age = 3 }, "A2");sortedDictionary2.Add(new Person { Name = "CCC", Age = 30 }, "CCC2");foreach (var item in sortedDictionary2){    Console.WriteLine($"key = {item.Key.Name}-{item.Key.Age} , value = {item.Value}");}

执行结果 :

http://img2.58codes.com/2024/20114067Tsgktrg4RZ.png

List

程式码 :

List<int> list = new List<int>();list.Add(2);list.Add(23);list.Add(5);list.Add(1);foreach (var item in list){    Console.WriteLine($"value = {item}");}

执行结果 :

http://img2.58codes.com/2024/20114067n9r2IxfdrK.png

SortedList

程式码 :

SortedList<int, string> sortList = new SortedList<int, string>();sortList.Add(2, "AA");sortList.Add(23, "BB");sortList.Add(5, "CC");sortList.Add(1, "DD");foreach (var item in sortList){    Console.WriteLine($"key = {item.Key} , value = {item.Value}");}

执行结果 :

http://img2.58codes.com/2024/201140672lOak4GJ4r.png

HashSet

程式码 :

HashSet<int> hashSet = new HashSet<int>{    2,23,5,1};foreach (var item in hashSet){    Console.WriteLine($"value = {item}");}

执行结果 :

http://img2.58codes.com/2024/20114067OLwfaRbGkU.png

SortedSet

程式码 :

SortedSet<int> sortedSet = new SortedSet<int>();sortedSet.Add(2);sortedSet.Add(23);sortedSet.Add(5);sortedSet.Add(1);foreach (var item in sortedSet){    Console.WriteLine($"value = {item}");}

执行结果 :

http://img2.58codes.com/2024/20114067yQM49ILSoK.png

Stack

程式码 :

Stack<int> stack = new Stack<int>();stack.Push(9);stack.Push(78);stack.Push(66);stack.Push(55);Console.WriteLine($"Peek = {stack.Peek()}");while (stack.Count() != 0){    Console.WriteLine($"value = {stack.Pop()}");}

执行结果 :

http://img2.58codes.com/2024/20114067DaaETVM7Ix.png

Queue

程式码 :

Queue<int> queue = new Queue<int>();queue.Enqueue(9);queue.Enqueue(78);queue.Enqueue(66);queue.Enqueue(55);while (queue.Count() != 0){    Console.WriteLine($"value = {queue.Dequeue()}");}

执行结果 :

http://img2.58codes.com/2024/201140675eID9lc4T4.png

LinkedList

程式码 :

LinkedList<int> linkList = new LinkedList<int>();linkList.AddFirst(1);linkList.AddFirst(2);linkList.AddFirst(3);linkList.AddLast(7);linkList.AddLast(8);linkList.AddLast(9);linkList.RemoveFirst();linkList.RemoveLast();foreach (var item in linkList){    Console.WriteLine($"value = {item}");}

执行结果 :

http://img2.58codes.com/2024/20114067xbDsznliKv.png
熟悉基本语法后再找适当的演算法放不同容器试一试
http://img2.58codes.com/2024/20114067IPNoyfQSeg.png

新手发文,若有错误的地方请不吝色的指正,谢谢。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章