使用C#反转堆栈

设置堆栈并向其中添加元素。

Stack st = new Stack();
st.Push('P');
st.Push('Q');
st.Push('R');

现在设置另一个堆栈来反转它。

Stack rev = new Stack();

在堆栈计数不等于0之前,请使用Push and Pop方法将其反转。

while (st.Count != 0) {
   rev.Push(st.Pop());
}

以下是完整的代码-

示例

using System;
using System.Collections;

namespace CollectionsApplication {
   public class Program {
      public static void Main(string[] args) {
         Stack st = new Stack();
         Stack rev = new Stack();
         st.Push('P');
         st.Push('Q');
         st.Push('R');
         Console.WriteLine("Current stack: ");
         foreach(char c in st) {
            Console.Write(c + " ");
         }
         Console.WriteLine();
         while (st.Count != 0) {
            rev.Push(st.Pop());
         }
         Console.WriteLine("Reversed stack: ");
         foreach(char c in rev) {
            Console.Write(c + " ");
         }
      }
   }
}

输出结果

Current stack:
R Q P
Reversed stack:
P Q R