堆栈类是使用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