#include <stdio.h> #include <stack> using namespace std; void ReverseStack(stack<int>& st) { if(st.size() > 1){ int nTop = st.top(); st.pop(); if(st.size() >= 1){ ReverseStack(st); int nTail = st.top(); st.pop(); ReverseStack(st); st.push(nTop); ReverseStack(st); st.push(nTail); } else{ st.push(nTop); } } } int main() { stack<int> st; for(int i = 0; i < 5; i++) st.push(i); ReverseStack(st); while(st.size() > 0) { int n = st.top(); printf("%4d",n); st.pop(); } printf("\n"); return 0; }
栈的原地翻转
最新推荐文章于 2021-02-27 09:11:28 发布