C# 中的 Stack 和 Queue

csharpprogrammingserver side programming更新于 2025/9/25 21:52:17

Stack

Stack 类表示一个后进先出的对象集合。当需要后进先出访问元素时,可以使用它。

以下是 Stack 类的属性 −

  • Count− 获取堆栈中的元素数量。

以下是 Stack 类的方法 −

Sr.No.方法 &说明
1public virtual void Clear();
从 Stack 中移除所有元素。
2public virtual bool Contains(object obj);
确定元素是否在 Stack 中。
3public virtual object Peek();
返回 Stack 顶部的对象而不将其移除。
4public virtual object Pop();
移除并返回 Stack 顶部的对象。
5public virtual void Push(object obj);
在堆栈。
6public 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());

相关文章