C# Stack類

2019-10-16 23:17:15

它表示一個後進先出的物件集合。當您需要後進先出的容器時,可以使用Stack類。當在列表中新增專案時,叫作推播專案,當刪除專案時,叫作彈出。

Stack類的方法和屬性

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

屬性 說明
Count 獲取堆疊中包含的元素數量。

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

序號 方法 描述
1 public virtual void Clear(); 從堆疊中刪除所有元素
2 public virtual bool Contains(object obj); 確定元素是否在堆疊(Stack)中。
3 public virtual object Peek(); 返回堆疊頂部的物件,但不刪除它。
4 public virtual object Pop(); 刪除並返回堆疊頂部的物件。
5 public virtual void Push(object obj); Stack的頂部插入一個物件。
6 public virtual object[] ToArray(); 將堆疊複製到一個新的陣列。

例子

以下範例中演示了上述Stack的用法:

using System;
using System.Collections;

namespace CollectionsApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            Stack st = new Stack();

            st.Push('I');
            st.Push('A');
            st.Push('B');
            st.Push('I');
            st.Push('I');
            st.Push('Y');

            Console.WriteLine("Current stack: ");
            foreach (char c in st)
            {
                Console.Write(c + " ");
            }

            Console.WriteLine();

            st.Push('Y');
            st.Push('M');
            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:
Y I I B A I
The next poppable value in stack: M
Current stack:
M Y Y I I B A I
Removing values
Current stack:
I I B A I