博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义栈类型,具有找到站内最小元素的min函数 ,且min(),pop(),push()函数的时间复杂度为O(1)...
阅读量:6359 次
发布时间:2019-06-23

本文共 699 字,大约阅读时间需要 2 分钟。

基本思想:

// 借助一个辅助栈,入栈时,若新元素比辅助栈栈顶元素小,则直接放入辅助站

// 反之,辅助站中放入次小元素(即辅助栈栈顶元素)====保证最小元素出栈时,次小元素被保存

static class MyStack {		Integer[] value = new Integer[10];		int index = 0;		MyStack miniStack;// 辅助栈		void push(Integer vInteger) {			this.push(vInteger);			// 辅助栈中无元素或栈顶元素比新插入元素大			if (miniStack.size() == 0 || miniStack.peek() > vInteger) {				miniStack.push(vInteger);			} else {// 新插入元素较小				miniStack.push(miniStack.peek());			}		}		Integer peek() {			return miniStack.pop();		}		// 出栈时,主栈与辅助栈一同弹出元素		Integer pop() {			miniStack.pop();			return value[index];		}		Integer mini() {			return miniStack.pop();		}		Integer size() {			return index;		}	}

  

转载于:https://www.cnblogs.com/cugb-2013/p/3634528.html

你可能感兴趣的文章
github/gitlab 管理多个ssh key
查看>>
[SQL in Azure] High Availability and Disaster Recovery for SQL Server in Azure Virtual Machines
查看>>
python单线程爬取阿里云maven库
查看>>
访问网络文件共享服务
查看>>
[转载] 七龙珠第一部——第104话 悟空复活吧
查看>>
Goldengate 维护
查看>>
如何验证下载的Microsoft软件是否为正版??
查看>>
Python文件操作
查看>>
用shell实现rpm包的自动安装
查看>>
大型网站技术架构(四)网站的高性能架构
查看>>
BAT资深架构师告诉你从程序员到架构师,你需要掌握什么能力?
查看>>
电脑被格式化了如何恢复?
查看>>
母亲像一道明亮的光
查看>>
js判断数组中是否包含某元素
查看>>
关于tcp/ip三次握手的理解和详细分析
查看>>
office 2010 提示“不信任到visual basic project“问题处理
查看>>
高性能web开发之网络传输环节
查看>>
遍历Map的四种方法
查看>>
https、SSL与数字证书介绍
查看>>
【VMCloud云平台】SCVMM配置(二)创建一片云
查看>>