diff --git a/Recursion/Code b/Recursion/Code new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/Recursion/Code @@ -0,0 +1 @@ + diff --git a/Recursion/TowerOfHanoi.cpp b/Recursion/TowerOfHanoi.cpp new file mode 100644 index 00000000..c9c1cf54 --- /dev/null +++ b/Recursion/TowerOfHanoi.cpp @@ -0,0 +1,29 @@ +#include +using namespace std; + +void towerOfHanoi(int s,int h, int d, int n) +{ + if(n==1) + { + cout << "move disk " << n << " from rod " << s << " to rod " << d << "\n"; + return; + } + towerOfHanoi(s,d,h,n-1); + cout << "move disk " << n << " from rod " << s << " to rod " << d << "\n"; + towerOfHanoi(h,s,d,n); + return; +} + +int main() +{ + int t; + cin >> t; + while(t--) + { + int n; + cin >> n; + int s = 1, h = 2, d = 3; + towerOfHanoi(s,h,d,n); + } + return 0; +} diff --git a/Recursion/reverseStack.cpp b/Recursion/reverseStack.cpp new file mode 100644 index 00000000..5f9ede9d --- /dev/null +++ b/Recursion/reverseStack.cpp @@ -0,0 +1,48 @@ + +#include +using namespace std; +void insertTemp(stack&s,int temp) +{ + if(s.size()==0) + { + s.push(temp); + return; + } + int val = s.top(); + s.pop(); + insertTemp(s,temp); + s.push(val); + return; + +} +void reverseStack(stack&s) +{ + if(s.size()==1) + return; + int temp = s.top(); + s.pop(); + reverseStack(s); + insertTemp(s,temp); +} + + +int main() +{ + stacks; + int n; + cin >> n; + for(int i=0; i> x; + s.push(x); + } + reverseStack(s); + for(int i=0; i +using namespace std; +void insertTemp(stack&s,int temp) +{ + if(s.size()==0 || s.top()<=temp) + { + s.push(temp); + return; + } + int val = s.top(); + s.pop(); + insertTemp(s,temp); + s.push(val); + return; + +} +void sortStack(stack&s) +{ + if(s.size()==1) + return; + int temp = s.top(); + s.pop(); + sortStack(s); + insertTemp(s,temp); +} + + +int main() +{ + stacks; + int n; + cin >> n; + for(int i=0; i> x; + s.push(x); + } + sortStack(s); + for(int i=0; i