当前位置: 首页 > 编程语言 > C#

c#栈队列组合分享

时间:2023-04-10 15:48:17 C#

c#栈队列组合C#中定义了一些通用容器,可以同时作为Stack和Queue使用吗?我只想能够将元素追加到队列的末尾或前面谢谢查看LinkedList类。LinkedList列表=newLinkedList();列表.AddFirst(1);列表.AddLast(2);列表.AddFirst(0);这是我对不可变双端队列的实现:http://blogs.msdn.com/ericlippert/archive/2008/02/12/immutability-in-c-part-eleven-a-working-double-ended-queue.aspx请注意,这是一个不可变的双端队列。通常你可能会认为队列是你改变的东西:queue.Enqueue(10);不可变队列总是不变的;当你添加一个新元素时,它会为你提供一个全新的队列,因此你可以将它与Do一起使用:queue=queue.Enqueue(10);如果您不再关心旧值。你想要的是一个链表——在BCL中有一个——带有方法AddFirst和AddLast下面是一个可以帮助人们轻松实现这一点的类:publicvoidPush(Tobj){this.linkedList.AddFirst(obj);}publicvoidEnqueue(Tobj){this.linkedList.AddFirst(obj);}publicTPop(){varobj=this.linkedList.First.Value;这。linkedList.RemoveFirst();返回对象;}publicTDequeue(){varobj=this.linkedList.Last.Value;this.linkedList.RemoveLast();返回对象;}publicTPeekStack(){返回this.linkedList。第一价值;}publicTPeekQueue(){returnthis.linkedList.Last.Value;}publicintCount{get{returnthis.linkedList.Count;}}}好的旧列表将执行此操作。Add()入队,Insert(0,T)入队,Remove(0)出队。以上就是C#学习教程的全部内容:c#栈队列组合分享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: