C# 堆棧(Stack)

C# 集合 C# 集合

堆棧(Stack)代表了一個(gè)后進(jìn)先出的對象集合。當(dāng)您需要對各項(xiàng)進(jìn)行后進(jìn)先出的訪問時(shí),則使用堆棧。當(dāng)您在列表中添加一項(xiàng),稱為推入元素,當(dāng)您從列表中移除一項(xiàng)時(shí),稱為彈出元素。

Stack 類的方法和屬性

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

屬性描述
Count獲取 Stack 中包含的元素個(gè)數(shù)。

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

序號方法名 & 描述
1public virtual void Clear();
從 Stack 中移除所有的元素。
2public virtual bool Contains( object obj );
判斷某個(gè)元素是否在 Stack 中。
3public virtual object Peek();
返回在 Stack 的頂部的對象,但不移除它。
4public virtual object Pop();
移除并返回在 Stack 的頂部的對象。
5public virtual void Push( object obj );
向 Stack 的頂部添加一個(gè)對象。
6public virtual object[] ToArray();
復(fù)制 Stack 到一個(gè)新的數(shù)組中。

實(shí)例

下面的實(shí)例演示了堆棧(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 + " "); 
            }
        }
    }
}

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會產(chǎn)生下列結(jié)果:

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

C# 集合 C# 集合