翻转栈(不可以用额外的数组空间和栈)
来源:互联网 发布:转口贸易产生海关数据 编辑:程序博客网 时间: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
- 翻转栈(不可以用额外的数组空间和栈)
- [每日练习]数组有N+M个数字, 数字的范围为1 ... N, 打印重复的元素, 要求O(M + N), 不可以用额外的空间
- [每日练习]Amazon面试题:数组有N-2个数字,数字的范围为1 ... N,没有重复的元素,要求打印缺少的2个数字,不可以用额外的空间
- 字符串翻转的两种方法(1:利用额外空间 2:交换)
- Leetcode 9刷题 翻转监测回文(不用额外空间)
- 不需要数组和额外空间的单向链表逆序实现
- 不用额外的空间颠倒栈你能够做到吗?
- 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)
- 数组不可以.innerhtml
- 字符串或者数组的循环左移或右移(不开辟额外的空间存放中间值)
- auto声明是数组不可以用动态数组n的变量
- 数组不可以是泛型的,但是有泛型数组
- layout_weight 额外空间的分配
- 将栈S中的元素逆置,使用额外的一个栈L和非数组变量
- merge两个数组,不用额外空间
- 字符串按照单词反序(增加额外空间和不增加额外空间两种实现方法)
- [每天一题]判断字符串里否是都是独一无二的字符(不要用额外空间)
- 不使用额外变量和数组的插入排序
- Android BottomTabBar控件的使用 Fragment 页面切换
- commons-pool对象池实现原理及使用(一)
- WPS高亮显示重复项并删除重复项有效防止数据重复录入
- (盗版)大数相乘
- 深度学习记录
- 翻转栈(不可以用额外的数组空间和栈)
- 归并排序题目整理归并(hdu)
- 1-4 输出菱形
- Word/Excel文档伪装病毒-kspoold.exe分析
- 简易测试工具wrk
- 使用httppost请求发送form表单的方法
- RecycleView原生添加上拉加载
- 7744问题
- Jsf标签详解(全)