在 C# 中实现堆栈

csharpprogrammingserver side programming更新于 2025/7/12 16:07:17

C# 中使用 Push 和 Pop 操作实现 Stack 类。

C# 中使用 Stack 表示后进先出的对象集合。以下是 Stack 类的方法 −

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

相关文章