C# Stack (栈)

  • Stack

    Stack类它表示对象的后进先出集合。当您需要对项目进行后进先出的访问时使用。在列表中添加项目时,称为推送项目,而在删除项目时,称为弹出项目。
  • Stack类的方法和属性

    Stack 类的方法和属性
    下表列出了 Stack 类的一些常用属性-
    属性 功能
    Count 获取堆栈中包含的元素数。
    下表列出了Stack类的一些常用方法-
    方法 功能
    public virtual void Clear(); 从堆栈中删除所有元素。
    public virtual bool Contains(object obj); 确定元素是否在堆栈中。
    public virtual object Peek(); 返回堆栈顶部的对象,但不删除它。
    public virtual object Pop(); 删除并返回堆栈顶部的对象。
    public virtual void Push(object obj); 在堆栈顶部插入一个对象。
    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