当前位置: 首页 > news >正文

Cracking The Coding Interview 3.6

//	Write a program to sort a stack in ascending order. You should not make any assumptions about how the stack is implemented. The following are the only functions that should be used to write this program: push | pop | peek | isEmpty.
//
//   使用一个临时stack
#include <iostream>
#include <stack>
using namespace std;
class myStack
{
public:
	stack<int>s;
public:
	myStack(){}

	void sort()
	{
		stack<int>buffer;
		while(!s.empty())
		{
			if (buffer.empty())
			{
				buffer.push(s.top());
				s.pop();
			}
			else
			{
				int t = s.top();
				s.pop();
				while(!buffer.empty() && t > buffer.top())/***注意&&左右判别式的先后***/
				{
					s.push(buffer.top());
					buffer.pop();
				}
				buffer.push(t);
			}
		}
		while(!buffer.empty())
		{
			s.push(buffer.top());
			buffer.pop();
		}
	}
};

int main()
{
	myStack st;
	for (int i =0; i<10; i++)
	{
		st.s.push(i*((i%2==0)?1:-1));
	}
	st.sort();
	cout<<endl;
	return 0;
}

转载于:https://www.cnblogs.com/Vulkan/p/7530092.html

相关文章:

  • 爬虫原理与数据抓取----- urllib2:GET请求和POST请求
  • 算法导论读书笔记(2)
  • Java中的基本类型和包装类
  • 用jquery-easyui中的combotree实现树形结构的选择
  • Oracle推出轻量级Java微服务框架Helidon
  • Postgres和MySQL创建用户并授予db权限
  • 自定义JSP标签库及Properties使用
  • Kubernetes - 集群内容器访问集群外服务
  • 同步和异步的区别
  • 认真的做羞羞的事 一颗种子的自我分享
  • Java异常机制
  • 使用Docker1.13.1快速部署ELK环境
  • SliTaz 从入门到精通
  • Decorator装饰者模式(结构型模式)
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • angular2开源库收集
  • C学习-枚举(九)
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • java8 Stream Pipelines 浅析
  • js 实现textarea输入字数提示
  • js递归,无限分级树形折叠菜单
  • js数组之filter
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • React Transition Group -- Transition 组件
  • 安装python包到指定虚拟环境
  • 关于 Cirru Editor 存储格式
  • 猴子数据域名防封接口降低小说被封的风险
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 判断客户端类型,Android,iOS,PC
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 物联网链路协议
  • ​【已解决】npm install​卡主不动的情况
  • ​MySQL主从复制一致性检测
  • ​渐进式Web应用PWA的未来
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #13 yum、编译安装与sed命令的使用
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (1)SpringCloud 整合Python
  • (JS基础)String 类型
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)Mysql的优化设置
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .Net Memory Profiler的使用举例
  • .NET开源快速、强大、免费的电子表格组件
  • .Net中的集合
  • .Net转前端开发-启航篇,如何定制博客园主题