队列Queue FIFO先进先出 栈Stack FILO先进后出
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //队列的特点就是先进先出 Queue<string> queue = new Queue<string>(); queue.Enqueue("张三"); //入队 将对象添加到 System.Collections.Generic.Queue<T> 的结尾处。 queue.Enqueue("李四"); queue.Enqueue("王五"); int queueCount = queue.Count(); //返回序列中元素的数量 string name = queue.Dequeue(); //出队 把队首的元素移除,并将这移除的元素返回。 Console.WriteLine(name); //输出“张三” name = queue.Dequeue(); //因为“张三”已经被移除了。所以现在是“李四”是在队首了 Console.WriteLine(name); //输出“李四” name = queue.Dequeue(); //因为“李四”也被移除了,所以队列中就只剩下王五了。 Console.WriteLine(name); //输出“王五” //------------------------------------------------------------ //栈的特点就是先进后出(了解下就可以了,用的不多) Stack<string> stack = new Stack<string>(); stack.Push("张三"); //入栈, 将对象插入 System.Collections.Generic.Stack<T> 的顶部。 stack.Push("李四"); stack.Push("王五"); int stackCount= stack.Count(); //返回栈中的数量 string name1 = stack.Pop(); //出栈。把栈首的元素移除,并将移除的元素返回。 Console.WriteLine(name); //输出:“王五” name1 = stack.Pop(); Console.WriteLine(name1);//输出:“李四” name1 = stack.Pop(); Console.WriteLine(name1);//输出:“张三” //name1 = stack.Peek(); //这是返回栈首的对象,但是不将它移除 Console.ReadKey(); } } }