题目:编写程序,按升序对栈进行排序(即最大元素位于栈顶).最多只能使用一个额外的栈存放临时数据。
核心代码:
<pre><code>` func sort(data:[Int])->[Int] {
var stack:[Int] = data
var nextStack:[Int] = []
while stack.count > 0 {
let top:Int = stack.last!
stack.removeLast() // 移除
while nextStack.count > 0 && nextStack.last! > top {
stack.append(nextStack.last!)
nextStack.removeLast()
}
nextStack.append(top)
}
return nextStack
}`</code></pre>
测试代码:
<pre><code>var stackSort:StackSort = StackSort() var sortData:[Int] = stackSort.sort(data: [8,5,4,3,10,1,7,9,2,6]) print("FlyElephant---排序之后的数据---\(sortData)")
</code></pre>