在 C# 中实现堆栈
csharpprogrammingserver side programming更新于 2025/7/12 16:07:17
C# 中使用 Push 和 Pop 操作实现 Stack 类。
C# 中使用 Stack 表示后进先出的对象集合。以下是 Stack 类的方法 −
| Sr.No. | 方法 &说明 |
|---|---|
| 1 | public virtual void Clear(); 从堆栈中移除所有元素。 |
| 2 | public virtual bool Contains(object obj); 确定元素是否在堆栈中。 |
| 3 | public virtual object Peek(); 返回堆栈顶部的对象而不将其移除。 |
| 4 | public virtual object Pop(); 移除并返回 Stack 顶部的对象。 |
| 5 | public virtual void Push(object obj); 在 Stack 顶部插入一个对象。 |
| 6 | public virtual object[] ToArray(); 将 Stack 复制到新数组。 |
Push 操作会添加元素。
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

