博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计一个有getMin功能的栈
阅读量:5822 次
发布时间:2019-06-18

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

【题目】

  实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中的最小元素的操作。

【要求】

  1.pop、push、getMin操作的时间复杂度都是O(1)。

  2.设计的栈类型可以使用现成的栈结构。

方案一的代码实现如下:

1 import java.util.Stack; 2 public class MyStack1 { 3     private Stack
stackData; 4 private Stack
stackMin; 5 public MyStack1() 6 { 7 this.stackData=new Stack
(); 8 this.stackMin=new Stack
(); 9 }10 public void push(int newNum)11 {12 if(this.stackMin.isEmpty()||newNum<=this.getmin())13 this.stackMin.push(newNum);14 this.stackData.push(newNum);15 }16 public int pop()17 {18 if(this.stackData.isEmpty())19 System.out.println("Your stack is empty!");20 int value=this.stackData.pop();21 if(value==this.getmin())22 this.stackMin.pop();23 return value;24 }25 public int getmin()26 {27 if(this.stackMin.isEmpty())28 System.out.println("Your stack is empty!");29 return this.stackMin.peek();30 }31 public static void main(String[] args)32 {33 MyStack1 s=new MyStack1();34 s.push(3);35 s.push(4);36 s.push(5);37 s.push(1);38 s.push(2);39 s.push(1);40 System.out.println(s.getmin());41 System.out.println(s.pop());42 System.out.println(s.pop());43 System.out.println(s.pop());44 System.out.println(s.pop());45 System.out.println(s.pop());46 System.out.println(s.pop());47 System.out.println(s.pop());48 }49 }

运行结果如下:

1121543Your stack is empty!

方法二的实现代码如下:

1 import java.util.Stack; 2 public class MyStack2 { 3     private Stack
stackData; 4 private Stack
stackMin; 5 public MyStack2() 6 { 7 this.stackData=new Stack
(); 8 this.stackMin=new Stack
(); 9 }10 public void push(int newNum)11 {12 if(this.stackMin.isEmpty()||newNum

运行结果如下:

1121543Your stack is empty!

 

转载地址:http://dbbdx.baihongyu.com/

你可能感兴趣的文章
HTTP状态码笔记
查看>>
h5 FileReader 上传文件
查看>>
分布式项目(六)iot-device-data 设备数据监控
查看>>
RHCE 学习笔记(39) - LDAP 服务器,NFS和autofs
查看>>
Java多线程的生产者、消费者实现例子
查看>>
Kafka常用操作
查看>>
ubuntu下允许root用户ssh远程登录
查看>>
java代码构建一棵二叉树(二叉查找树)
查看>>
salt认证和语法
查看>>
WGS84,GCJ02, BD09坐标转换
查看>>
页面开发问题集
查看>>
部署SCCM 2012R2之六:配置发现篇
查看>>
配置托管服务帐号
查看>>
我的友情链接
查看>>
cacti故障记录
查看>>
***常用兵器之扫描篇(下)
查看>>
maven异常:missing artifact jdk.tools:jar:1.6
查看>>
终端安全求生指南(五)-——日志管理
查看>>
我的友情链接
查看>>
lduan Exchange 2013 介绍(一)
查看>>