双栈排序java_双栈排序(Java)
请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中。
给定一个int[] numbers(C++中为vector),其中第一个元素为栈顶,请返回排序后的栈。请注意这是一个栈,意味着排序过程中你只能访问到第一个元素。
测试样例:
[1,2,3,4,5]
返回:[5,4,3,2,1]
import java.util.Stack;
import java.util.ArrayList;
public class TwoStacks {
public ArrayList twoStacksSort(int[] numbers) {
// write code here
Stack stack = new Stack();
Stack stack1 = new Stack();
for(int i=0; i
stack.push(numbers[i]);
}
while(!stack.isEmpty()){
int tmp = stack.pop().intValue();
while(!stack1.isEmpty() && stack1.peek() > tmp){
stack.push(stack1.pop());
}
stack1.push(tmp);
}
ArrayList tmp1 = new ArrayList();
while(!stack1.isEmpty()){
tmp1.add(stack1.pop());
}
return tmp1;
}
public Stack twoStacksSort1(Stack s) {
// write code here
Stack stack = new Stack();
while(!s.isEmpty()){
int tmp = s.pop();
while(!stack.isEmpty() && stack.peek() > tmp){
s.push(stack.pop());
}
stack.push(tmp);
}
return stack;
}
public static void main(String[] args) {
TwoStacks ts = new TwoStacks();
int [] numbers = {1,3,2,6,5};
ArrayList al = ts.twoStacksSort(numbers);
for(int i=0; i
System.out.print(al.get(i) + " ");
}
}
}
双栈排序java_双栈排序(Java)相关推荐
- 双栈排序java_双栈排序
23 思路: 1.先看下图 初始栈initStack中存放的数组中待排序的数:临时栈tempStack中存放的是已经排好序的数. 现在继续对初始栈中的数进行排序,5应当插入到临时栈哪个位置? 2. 5 ...
- 左神算法:用一个栈实现另一个栈的排序(Java版)
本题源自左神<程序员面试代码指南>"用一个栈实现另一个栈的排序"题目. 题目 在一个栈中元素的类型为整型,现在想将该栈从栈顶到栈底按从大到小的顺序排序,只许申请一个栈, ...
- 【左程云Java算法】Chapter1-5:用一个栈实现另一个栈的排序
[左程云Java算法]Chapter1-5:用一个栈实现另一个栈的排序 [题目] 用一个栈实现另一个栈的排序 [要求] 一个栈中元素的类型为整型,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个 ...
- java中的列表栈链表_Java数据结构(栈,队列,双链表)
(1)栈package ChapterOne; public class Stack { //栈数组 long stackArr[]; //栈的大小 int maxSize; //栈的顶部 int t ...
- 中缀表达式计算中栈内优先级、栈外优先级的排序原理
前言: 有关中缀表达式计算是数据结构中非常经典的题目,以至于很多文章或课本喜欢直接给出计算方法一步到位,但关于其中的原理却并未深究,本文试图通过分析运算符的栈内优先级,栈外优先级的排序方法探求中缀表达 ...
- linux双网卡 ipv4 ipv6 双栈,linux ipv4 ipv6双栈 (优先ipv4而不使用ipv6配置)
那个啥,不喜欢看一些背景 分析啥的 直接看红字修改就行了. 其他的都是冗余部分,都是码出来的,其他的地方好像搜不到.经验之谈.避免大家采坑. 在国家网信办推行IPv6的大前提下,进行IPv6改造工作, ...
- 用一个栈实现另一个栈的排序
要求: 在一个栈中元素的类型为整型,现在想将该栈从栈顶到栈底按从大到小的顺序排序,只许申请一个栈,除此之外,可以申请其他变量,但是不能申请额外的数据结构 解题思路: 待排序的栈stack, 辅助栈he ...
- 栈和队列之用一个栈实现另一个栈的排序
用一个栈实现另一个栈的排序 题目: 一个栈元素的类型为整数,现在要想将该栈从顶到底按从大到小的顺序排列,只允许申请一个栈,除此之外, 可以申请一个变量,可以申请额外的变量,但是不能申请额外的数据结构, ...
- 字符串排序java_开发人员是如何使用Java进行排序?
在分析大量开源Java项目的源代码时,我发现Java开发人员经常以两种方式进行排序.一种使用的sort()是Collections或的方法,Arrays另一种使用的是排序的数据结构,例如TreeMap ...
最新文章
- wxWidgets:wxDialog类用法
- aix察看根目录各文件和子目录大小,去除文件系统统计
- 11尺寸长宽 iphone_新手必知LED显示屏尺寸规格及计算方法
- 【ES6(2015)】Number
- (73)FPGA模块调用(VHDL调用system Verilog)
- Javascript面向对象二
- python画十字_Python解决十字消除棋
- 中企动力助天正生物争夺破伤风抗毒素全球话语权
- 10个可以让你达到谷歌首页的谷歌SEO技巧
- 远程主机和本地文件互传的2种方法
- [办公软件word] 怎么让Worde2019显示所有批注?
- 【Photoshop技巧】两步将黑色图片改变颜色
- ESPG和OGC、SRS、SRID指的是什么
- 小米2019秋招软件开发笔试题A选择部分解析
- python逻辑回归的主要参数_python机器学习(六)回归算法-逻辑回归
- 世界上还有人以“厕所”为姓,都知道是哪国人
- 计算机正确的坐姿教案,幼儿园中班教案《正确坐姿真精神》(通用).doc
- 子网掩码!如何划分子网掩码,计算IP地址
- Hystrix Dashboard
- 论坛报名 | Sanjeev Arora,周志华,马毅,张长水……
热门文章
- 查询各个分区的数据量_分库、分表、分区的区别,傻傻分不清?
- 2021-03-09 Local Lipschitz 可能存在 有限时间逃逸
- CXF 入门:创建一个基于SOAPHeader的安全验证(CXF拦截器使用)
- uva232corssword answers模拟
- encodeURI、encodeURIComponent、btoa及其应用场景
- WinRT知识积累1之读xml数据
- js 正则学习小记之左最长规则
- Python 基础算法(1) - 算法简介
- 10774: matrix
- 5- vue django restful framework 打造生鲜超市 -完成商品列表页(上)