C#集合本质之堆栈的用法详解
作者:Darren Ji
本文详细讲解了C#集合本质之堆栈的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
在"了解集合本质必须要知晓的概念-链表"中,我们了解了链表的概念和种类,并且模拟了一个单向链表。本篇体验的堆栈是约束版的链表,只能在栈顶接收新节点和释放节点。
堆栈的主要操作是压栈和出栈。压栈是将新节点放在栈顶,出栈是从栈顶取出一个节点,返回新弹出节点的数据项。堆栈也称为后进先出的数据结构。
接着上一篇,写一个派生于List的类来模拟堆栈的压栈和出栈。
namespace LinkedListLibrary { public class StackInheritance : List { public StackInheritance() : base("stack"){} public void Push(object dataValue) { InsertAtFront(dataValue); } public object Pop() { return RemoveFromFront(); } } }
客户端调用。
public static void Main(string[] args) { StackInheritance stack = new StackInheritance(); bool aBoolean = true; char aChar = 'a'; int anInt = 12; string aStr = "hello"; stack.Push(aBoolean); stack.Display(); stack.Push(aChar); stack.Display(); stack.Push(anInt); stack.Display(); stack.Push(aStr); stack.Display(); try { while (true) { object removedObject = stack.Pop(); Console.WriteLine(removedObject + "被弹出~~"); stack.Display(); } } catch (EmptyListException emptyListException) { Console.Error.WriteLine(emptyListException.StackTrace); } Console.ReadKey(); }
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接