C# Stack类
它代表了后进先出集合对象。当需要一个后进先出项目的存取使用它。当在列表中添加一个项目,它被称为压入项,当删除它,它被称为弹出项。
Stack类的方法和属性
下表列出了一些Stack类的常用属性:
属性 | 描述 |
---|---|
Count | 获取包含在堆栈的元素数 |
下表列出了一些Stack类的常用方法:
S.N | 方法名称及用途 |
---|---|
1 |
public virtual void Clear(); 从堆栈中删除所有元素 |
2 |
public virtual bool Contains( object obj ); 确定一个元素是否在栈中 |
3 |
public virtual object Peek(); 返回位于堆栈顶部的对象而不移除它 |
4 |
public virtual object Pop(); 移除并返回堆栈顶部的对象 |
5 |
public virtual void Push( object obj ); 插入一个对象在堆栈的顶部 |
6 |
public virtual object[] ToArray(); 复制堆栈到一个新的数组 |
例子:
下面的例子演示了使用堆栈:
using System; using System.Collections; namespace CollectionsApplication { class Program { static void Main(string[] args) { Stack st = new Stack(); st.Push('A'); st.Push('M'); st.Push('G'); st.Push('W'); Console.WriteLine("Current stack: "); foreach (char c in st) { Console.Write(c + " "); } Console.WriteLine(); st.Push('V'); st.Push('H'); Console.WriteLine("The next poppable value in stack: {0}", st.Peek()); Console.WriteLine("Current stack: "); foreach (char c in st) { Console.Write(c + " "); } Console.WriteLine(); Console.WriteLine("Removing values "); st.Pop(); st.Pop(); st.Pop(); Console.WriteLine("Current stack: "); foreach (char c in st) { Console.Write(c + " "); } } } }
让我们编译和运行上面的程序,这将产生以下结果:
Current stack: W G M A The next poppable value in stack: H Current stack: H V W G M A Removing values Current stack: G M A