位置:首页 > 高级语言 > C#在线教程 > C# Stack类

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