栈和队列---用一个栈实现另一个栈的排序
来源:互联网 发布:金钥匙是什么软件 编辑:程序博客网 时间:2024/04/26 15:28
【题目】
一个栈中元素的类型是整型,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个栈。除此之外,可以申请新的变量,但不能申请额外的数据结构。如何完成排序?
【基本思路】
不断将栈顶元素cur弹出,如果新栈为空、或者新栈栈顶元素大于cur,直接将cur压入新栈中;否则,将新栈中所有的元素压回原来的栈中,再将cur压入新栈中.继续弹出原来栈的栈顶元素,重复上述操作即可。
【代码实现】
#python3.5def sortByStack(stack): if len(stack) < 2: return stack stack1 = [] while stack: cur = stack.pop() if len(stack1) == 0 or stack1[-1] >= cur: stack1.append(cur) else: while stack1: stack.append(stack1.pop()) stack1.append(cur) while stack1: stack.append(stack1.pop()) return stack
阅读全文
2 0
- 栈和队列之用一个栈实现另一个栈的排序
- 栈和队列(5)——用一个栈实现对另一个栈的排序
- 1栈和队列--用一个栈实现另一个栈的排序
- 栈和队列——用一个栈实现另一个栈的排序
- 栈和队列 用一个栈实现另一个栈的排序
- 栈和队列---用一个栈实现另一个栈的排序
- 【栈】用一个栈来实现另一个栈的排序
- 用一个栈实现另一个栈的排序
- 用一个栈实现另一个栈的排序
- 数据结构5 用一个栈实现另一个栈的排序
- 用一个栈实现另一个栈的排序
- 用一个栈来实现另一个栈的排序
- 1_5用一个栈实现另一个栈的排序
- 用一个栈实现另一个栈的排序
- 用一个栈实现另一个栈的排序
- 用一个栈实现另一个栈的排序
- 用一个栈实现另一个栈的排序
- C++ 使用一个栈实现另一个栈的排序
- 忽悠VC指南:怎么假装成一位AI专家(9条实用建议)
- 安卓之父安迪-鲁宾:AI将成为下一个主流操作系统
- 设计模式(八)适配器模式详解
- file,fileInputStream, fileReader,inputStreamReader等java文件流类的关系区别
- 传统统计学和机器学习的不同点
- 栈和队列---用一个栈实现另一个栈的排序
- 马斯克携115名AI专家发公开信:联合国应禁止杀人机器人
- 18载艰苦创业,曾动念转型,科大讯飞的江湖夜雨和桃李春
- 想打造一个不智障的聊天机器人?这里有六条实战指南
- 【CB Insights百页AI报告】2017人工智能现状、创业图景与未来
- 2025年,金融业23万人类岗位将被机器人取代
- IBM深度学习技术取得重大突破 数据分析时间从数天缩短为数小时
- 为何微软Cortana不及亚马逊Alexa?陆奇这样解释
- 让AI读懂人的喜怒哀乐?百度都没敢做的事情,这家创业公司已经有了成果