1、LinkedList
//linkedlist:范型的特点;链表,元素不连续分配 //找元素要遍历 查找不方便 //增删 比较方便 //节点数值可以重复 WriteLine("******LinkedList<T>******"); LinkedList<int> linkedlist = new LinkedList<int>(); linkedlist.AddFirst(123); linkedlist.AddLast(234); bool iscontain = linkedlist.Contains(123); LinkedListNode<int> node123 = linkedlist.Find(123); linkedlist.AddBefore(node123, 1); linkedlist.AddAfter(node123, 9); linkedlist.Remove(234); linkedlist.Remove(node123); linkedlist.RemoveFirst(); linkedlist.RemoveLast(); linkedlist.Clear();
2、Queue
//Queue 就是链表 先进先出 A不断写入日志任务 B不断获取任务去执行 WriteLine("******Queue<T>******"); Queue<string> numbers = new Queue<string>(); numbers.Enqueue("one"); numbers.Enqueue("two"); numbers.Enqueue("two"); numbers.Enqueue("four"); foreach (var item in numbers) { WriteLine(item); } //获得数据并移除 WriteLine($"dequeuing:{numbers.Dequeue()}"); //Peek获取数据但是不移除数据 WriteLine($"Peek at next :{numbers.Peek()}");
3、Stack
//Stack 也是链表 是栈 先进后出 放任务延迟执行 WriteLine("******Stack<T>******"); Stack<string> numbers = new Stack<string>(); numbers.Push("one"); numbers.Push("two"); numbers.Push("three"); foreach (var item in numbers) { WriteLine(item); } WriteLine($"pop:{numbers.Pop()}"); //获取并移除 WriteLine($"peek at next time to dequeus:{numbers.Peek()}");//获取不移除