如何仅用递归函数和栈操作逆序一个栈
来源:互联网 发布:时间同步服务器软件 编辑:程序博客网 时间:2024/05/17 23:15
牛客网上讲的一道题,学会这道题将对递归有更进一步的理解。
(视频链接:http://www.nowcoder.com/discuss/1944 )
题目:
一个栈依次压入1,2,3,4,5那么从栈顶到栈底分别为5,4,3,2,1。将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,而不能用另外的数据结构。
下面是C++代码:
template <typename T>const T getAndRemoveLastElem(stack<T>& s)//移除并返回栈底元素{ T rlt = s.top(); s.pop(); if (s.empty()) return rlt; else { T last = getAndRemoveLastElem(s); s.push(rlt); return last; }}template <typename T>void reverse_stack(stack<T>& s){ if (s.empty()) return; T tmp = getAndRemoveLastElem(s); reverse_stack(s); s.push(tmp);}
原创 转载 翻译 都不是。。。。。
0 0
- 仅用递归函数和栈操作逆序一个栈
- 仅用递归函数和栈操作逆序一个栈
- 仅用递归函数和栈操作逆序一个栈
- 栈和队列(3)--如何仅用递归函数和栈操作逆序一个栈
- 栈和队列——如何仅用递归函数和栈操作逆序一个栈
- 栈和队列 如何仅用递归函数和栈操作逆序一个栈
- 栈和队列---如何仅用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- 3.如何仅用递归函数和栈操作逆序一个栈
- 数据结构 如何仅用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- day 1.1如何仅用递归函数和栈操作逆序一个栈
- 程序员面试指南之如何仅用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- DVWA之Brute Force
- 【数据库学习】机房收费系统(二)组合查询
- 【LeetCode 88 】 Merge Sorted Array
- 软件测试初体验
- 消除左递归
- 如何仅用递归函数和栈操作逆序一个栈
- Java面试题之一---------字符串截取(字节分配)(编码)
- jQuery带左右按钮控制图片切换
- 设计模式(7):原型模式
- Swift初级:变量与数据类型
- VirtualBox不能启动虚拟机的原因
- [UIImage resizableImageWithCapInsets:]使用注意
- linux查看进程运行路径
- iOS开发:UITableView简单介绍