文件名称:1-3 StackSort
介绍说明--下载内容均来自于网络,请自行研究使用
描述
栈是一种强大的数据结构,它的一种特殊功能是对数组进行排序。例如,借助一个栈,依次将数组1,3,2按顺序入栈或出栈,可对其从大到小排序:
1入栈;3入栈;3出栈;2入栈;2出栈;1出栈。
在上面这个例子中,出栈序列是3,2,1,因此实现了对数组的排序。
遗憾的是,有些时候,仅仅借助一个栈,不能实现对数组的完全排序。例如给定数组2,1,3,借助一个栈,能获得的字典序最大的出栈序列是3,1,2:
2入栈;1入栈;3入栈;3出栈;1出栈;2出栈。
请你借助一个栈,对一个给定的数组按照出栈顺序进行从大到小排序。当无法完全排序时,请输出字典序最大的出栈序列。
输入
共2行。
第一行包含一个整数n,表示入栈序列长度。
第二行包含n个整数,表示入栈序列。输入数据保证给定的序列是1到n的全排列,即不会出现重复数字。
输出
仅一行,共n个整数,表示你计算出的出栈序列。
输入样例
3
2 1 3
输出样例
3 1 2
数据范围
1 <= n <= 2,000,000
资源限制
时间限制:1 sec
内存限制:256 MB(A stack is a powerful data structure, and one of its special functions is to sort arrays. For example, with a stack, the array 1,3,2 is sequentially stacks or stacks, which can be sorted from large to small.)
栈是一种强大的数据结构,它的一种特殊功能是对数组进行排序。例如,借助一个栈,依次将数组1,3,2按顺序入栈或出栈,可对其从大到小排序:
1入栈;3入栈;3出栈;2入栈;2出栈;1出栈。
在上面这个例子中,出栈序列是3,2,1,因此实现了对数组的排序。
遗憾的是,有些时候,仅仅借助一个栈,不能实现对数组的完全排序。例如给定数组2,1,3,借助一个栈,能获得的字典序最大的出栈序列是3,1,2:
2入栈;1入栈;3入栈;3出栈;1出栈;2出栈。
请你借助一个栈,对一个给定的数组按照出栈顺序进行从大到小排序。当无法完全排序时,请输出字典序最大的出栈序列。
输入
共2行。
第一行包含一个整数n,表示入栈序列长度。
第二行包含n个整数,表示入栈序列。输入数据保证给定的序列是1到n的全排列,即不会出现重复数字。
输出
仅一行,共n个整数,表示你计算出的出栈序列。
输入样例
3
2 1 3
输出样例
3 1 2
数据范围
1 <= n <= 2,000,000
资源限制
时间限制:1 sec
内存限制:256 MB(A stack is a powerful data structure, and one of its special functions is to sort arrays. For example, with a stack, the array 1,3,2 is sequentially stacks or stacks, which can be sorted from large to small.)
相关搜索: 数据结构
(系统自动生成,下载前可以参看下载内容)
下载文件列表
文件名 | 大小 | 更新时间 |
---|---|---|
stack.h | 2941 | 2017-10-12 |
StackSort.cpp | 887 | 2017-10-12 |