C# 中的 Stack 和 Queue
csharpprogrammingserver side programming更新于 2025/9/25 21:52:17
Stack
Stack 类表示一个后进先出的对象集合。当需要后进先出访问元素时,可以使用它。
以下是 Stack 类的属性 −
Count− 获取堆栈中的元素数量。
以下是 Stack 类的方法 −
| Sr.No. | 方法 &说明 |
|---|---|
| 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); 在堆栈。 |
| 6 | public virtual object[] ToArray(); 将堆栈复制到新数组。 |
以下示例展示了如何使用 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 + " ");
}
}
}
}
输出
当前堆栈: D C B A 堆栈中下一个可弹出的值:Q 当前堆栈: Q P D C B A 正在移除值.... 当前堆栈: C B A
队列
队列集合类是 C# 中的一个概念,包含在 System.Collection 命名空间中。元素以先进先出 (FIFO) 的方式存储在队列 (QUEUE) 中。第一个添加的元素将最先退出,就像电影院外排队买票的人一样。
它有两个方法 −
- Enqueue() 方法用于添加值
- Dequeue() 方法用于检索值
入队
在队列中添加项目。
Queue q = new Queue(); q.Enqueue(“Two”); q.Enqueue(“One”);
出队
从队列中返回元素。
Queue q = new Queue(); q.Enqueue(“Two”); q.Enqueue(“One”); // 移除元素 while (q.Count > 0) Console.WriteLine(q.Dequeue());

