C# 堆棧(Stack)
堆棧(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 類的一些常用的 方法:
序號 | 方法名 & 描述 |
---|---|
1 | public virtual void Clear();
從 Stack 中移除所有的元素。 |
2 | public virtual bool Contains(
object obj
);
判斷某個(gè)元素是否在 Stack 中。 |
3 | public virtual object Peek(); 返回在 Stack 的頂部的對象,但不移除它。 |
4 | public virtual object Pop(); 移除并返回在 Stack 的頂部的對象。 |
5 | public virtual void Push(
object obj
); 向 Stack 的頂部添加一個(gè)對象。 |
6 | public 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
更多建議: