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程序算法设计的学习有所帮助。