堆栈类是使用Push和Pop操作在C#中实现的。
C#中使用Stack表示对象的后进先出集合。以下是Stack类的方法-
序号 | 方法与说明 |
---|---|
1 | public virtual void Clear() ;从堆栈中删除所有元素。 |
2 | public virtual bool Contains(object obj) ;确定元素是否在堆栈中。 |
3 | public virtual object Peek() ;返回位于堆栈顶部的对象,但不删除它。 |
4 | public virtual object Pop() ;删除并返回堆栈顶部的对象。 |
5 | public virtual void Push(object obj) ;在堆栈顶部插入一个对象。 |
6 | public virtual object[] ToArray() ;将堆栈复制到新数组。 |
推送操作会添加元素。
Stack st = new Stack(); st.Push('A'); st.Push('B'); st.Push('C'); st.Push('D');
弹出操作从堆栈中删除元素。
st.Push('P'); st.Push('Q');
这里是展示如何使用Stack类及其工作的例子Push()
和Pop()
方法。
using System; using System.Collections; namespace CollectionsApplication { class Program { static void Main(string[] args) { Stack st = new Stack(); st.Push('A'); st.Push('B'); st.Push('C'); st.Push('D'); Console.WriteLine("Current stack: "); foreach (char c in st) { Console.Write(c + " "); } Console.WriteLine(); st.Push('P'); st.Push('Q'); 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: D C B A The next poppable value in stack: Q Current stack: Q P D C B A Removing values.... Current stack: C B A