题目要求如下:
现有栈S,试设计算法,将S中的元素逆置。要求不用辅助数据结构,仅通过对S自身的操作完成S中元素的逆置。
代码如下:
#include"pch.h"
#include<iostream>
#include<stack>
#include<cstdlib>
#include<ctime>
using namespace std;
const int LENGTH = 10;
stack<int> initialStack()
{
stack<int> result;
for (int i = 0; i < 10; i++)
{
result.push(rand() % 10);
}
return result;
}
void printStack(stack<int> st)
{
for (int i = 0; i < 10; i++)
{
cout << st.top();
st.pop();
if (i != 9)
cout << " ";
else
cout << endl;
}
}
void helpReverseStack(stack<int>& st, int top_num, int level)
{
if (st.size() == level)
{
st.push(top_num);
return;
}
int num = st.top();
st.pop();
helpReverseStack(st, top_num, level);
st.push(num);
}
void reverseStack(stack<int>& input)
{
for (int i = 0; i < input.siz