You can only use the following ADT functions on Stack:
IsEmpty
IsFull
Push
Pop
Top
#include <iostream> #include <stack> using namespace std; stack S; 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<<"Stack empty now"; } } int main(int argc, char* argv[]) { S.push(4); S.push(3); S.push(2); S.push(1); printStack(); Rec(); printStack(); return 0; }
0 comments:
Post a Comment