翻转栈(不可以用额外的数组空间和栈)

来源:互联网 发布:转口贸易产生海关数据 编辑:程序博客网 时间:2024/06/05 03:14

思路:采用递归的方法实现,注意分情况处理:栈中只有一个元素,栈中元素至少两个元素
代码:

template<class T> void reverseStack(stack<T> s){  if(s.empty()) return;  else {  //判断栈中是不是只有一个元素    T a=s.top();    s.pop();    if(s.empty()) {s.push(a);return ;}    else s.push(a);  }  //当栈中元素至少为两个元素的情况  T tmp1=s.top();  s.pop();  reverseStack(s);  T tmp2=s.top();  s.pop();  reverseStack(s);  s.push(tmp1);  reverseStack(s);  s.push(tmp2);}
阅读全文
0 0
原创粉丝点击