C语言实现颠倒栈的方法
本文实例讲述了C语言实现颠倒栈的方法,很实用的技巧。分享给大家供大家参考之用。
具体实现方法如下:
#include<iostream> #include<iterator> #include<algorithm> #include<vector> #include<stack> usingnamespacestd; voidinitializeStack(stack<int>&st) { for(inti=1;i<=5;i++) st.push(i); } voidaddToStack(stack<int>&st,inti) { if(st.empty()) st.push(i); else{ inttop=st.top(); st.pop(); addToStack(st,i); st.push(top); } } voidreverseStack(stack<int>&st) { if(st.empty()) return; inttop=st.top(); st.pop(); reverseStack(st); addToStack(st,top); } voidprint(stack<int>st) { if(st.empty()) return; else{ inttop=st.top(); st.pop(); print(st); cout<<top<<""; } } voidmain() { stack<int>st; initializeStack(st); print(st); cout<<endl; reverseStack(st); print(st); }
希望本文所述对大家C程序算法设计的学习有所帮助。