C# 堆棧(Stack)
堆棧(Stack)代表了一個後進先出的對象集合。 當您需要對各項進行後進先出的訪問時,則使用堆棧。 當您在列表中添加一項,稱為推入元素,當您從列表中移除一項時,稱為彈出元素。
Stack 類的方法和屬性
下表列出了Stack類的一些常用的屬性 :
属性 | 描述 |
---|---|
Count | 获取 Stack 中包含的元素个数。 |
下表列出了Stack類的一些常用的方法 :
序号 | 方法名 & 描述 |
---|---|
1 | public virtual void Clear();
从 Stack 中移除所有的元素。 |
2 | public virtual bool Contains(
object obj
);
判断某个元素是否在 Stack 中。 |
3 | public virtual object Peek(); 返回在 Stack 的顶部的对象,但不移除它。 |
4 | public virtual object Pop(); 移除并返回在 Stack 的顶部的对象。 |
5 | public virtual void Push(
object obj
); 向 Stack 的顶部添加一个对象。 |
6 | public 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