You can only use the following ADT functions on Stack:
IsEmpty
IsFull
Push
Pop
Top
#include
#include
using namespace std;
stack
void func(int n){
if(S.empty())
S.push(n);
else{
int t= S.top();
S.pop();
func(n);
S.push(t);
}
}
void Rec(){
if(!S.empty()){
int t = S.top();
S.pop();
Rec();
func(t);
}
}
void printStack(){
if(!S.empty()){
int t= S.top();
S.pop();
cout<
printStack();
S.push(t);
}
else{
cout<
}
}
int main(int argc, char* argv[])
{
S.push(4);
S.push(3);
S.push(2);
S.push(1);
printStack();
Rec();
printStack();
return 0;
}