用递归方式将栈内容翻转

来源:互联网 发布:js设置页面刷新 编辑:程序博客网 时间:2024/06/05 06:26

比如:原来栈中从顶到底的元素分别为1, 2, 3, 4, 5。.翻转后栈中从顶到底应分别为5, 4, 3, 2, 1。

#include <stack>
using namespace std;

void addToStack(stack<int> &buf, int value)
{
      if (buf.empty())
      {
          buf.push(value);
      }
      else
      {
          int top = buf.top();
          buf.pop();
          addToStack(buf, value);
          buf.push(top);
      }
}

void reverse(stack<int> &buf)
{
      if (!buf.empty())
      {
          int top = buf.top();
          buf.pop();
          reverse(buf);
          addToStack(buf, top);
      }
}


原创粉丝点击