Latest web development tutorials

C# 堆棧(Stack)

C# 集合 C#集合

堆棧(Stack)代表了一個後進先出的對象集合。 當您需要對各項進行後進先出的訪問時,則使用堆棧。 當您在列表中添加一項,稱為推入元素,當您從列表中移除一項時,稱為彈出元素。

Stack 類的方法和屬性

下表列出了Stack類的一些常用的屬性

属性描述
Count获取 Stack 中包含的元素个数。

下表列出了Stack類的一些常用的方法

序号方法名 & 描述
1public virtual void Clear();
从 Stack 中移除所有的元素。
2public virtual bool Contains( object obj );
判断某个元素是否在 Stack 中。
3public virtual object Peek();
返回在 Stack 的顶部的对象,但不移除它。
4public virtual object Pop();
移除并返回在 Stack 的顶部的对象。
5public virtual void Push( object obj );
向 Stack 的顶部添加一个对象。
6public virtual object[] ToArray();
复制 Stack 到一个新的数组中。

實例

下面的實例演示了堆棧(Stack)的使用:

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: 
WGMA
The next poppable value in stack: H
Current stack: 
HVWGMA
Removing values
Current stack: 
GMA

C# 集合 C#集合