`

java实现一个栈

阅读更多

 

/**
 * @Project:      Test     
 * @File:         org.coffeesweet.test01.Test19.java
 * @Author:       coffeesweet
 * @Date:         2011-6-7
 * @Description:  2011 coffeesweet Inc. All rights reserved.
 */
package org.coffeesweet.test01;

import java.util.LinkedList;

/**
 * @author coffeesweet
 *
 */
public class Test19 {

	public static void main(String[] args){
		Long[] numList = new Long[]{1L,5L,3L,2L,1L,5L,7L,6L,7L,8L,-1L,-5L,2L,7L,2L,3L,5L,9L,9L};
		Test19 t19 = new Test19();
		MaxNumStack mns = t19.new MaxNumStack();
		for(int i=0;i<numList.length;i++){
			mns.push(numList[i]);
		}
		System.out.println(mns.pop());
		System.out.println(mns.pop());
		System.out.println(mns.top());
		System.out.println(mns.getMaxNum());
	}
	
	private class MaxNumStack{
		
		private LinkedList<Long> stackList = new LinkedList<Long>();
		private LinkedList<Long> maxNumList = new LinkedList<Long>();
		
		public void push(Long num){
			stackList.addLast(num);
			if(maxNumList.isEmpty()||(maxNumList.getLast().compareTo(num)<1)){
				maxNumList.addLast(num);
			}
		}
		
		public Long pop(){
			if(stackList.isEmpty())return null;
			if((maxNumList.getLast().compareTo(stackList.getLast())<1))maxNumList.removeLast();
			return stackList.removeLast();
		}
		
		public Long top(){
			return stackList.getLast();
		}
		
		public boolean isEmpty(){
			return stackList.isEmpty();
		}
		
		public Long getMaxNum(){
			if(maxNumList.isEmpty())return null;
			return maxNumList.getLast();
		}
	}
}
 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    用Java实现一个栈

    用Java实现一个栈

    java 栈的实现和应用

    2. **Stack类**:Java标准库中的`java.util.Stack`类也是实现栈的一个选项。它是`Vector`类的子类,因此具有线程安全的特性。但通常,由于其性能较低,推荐使用`ArrayDeque`。使用`Stack`类的示例如下: ```java ...

    用java实现的栈Stack类

    用java实现的栈Stack类,不继承任何集合类,用对象数组实现

    java实现的顺序栈

    java实现的顺序栈,部分代码:public class OrderStack { int top=-1; String[] stack; public OrderStack(int initcap)throws Exception{ if(initcap){

    java sip 协议栈实现客户端和服务

    3. 如何使用Java实现SIP客户端和服务器端。 4. Eclipse开发环境的使用和调试技巧。 5. Ant构建工具的使用。 6. 日志记录和调试技术。 7. 依赖管理和库的引入。 此外,还可以深入了解网络编程、多线程处理、异常处理...

    华科java实验-用泛型栈实现泛型队列

    试用java.util.Stack泛型栈作为父类,用另一个泛型栈对象作为成员变量,模拟实现一个泛型子类Queue,当存储元素的第1个栈的元素超过dump时,再有元素入队列就倒入第2栈。除提供无参构造函数Queue( )外,其它所有队列...

    栈的Java语言实现

    ### 栈的Java语言实现详解 #### 一、栈的基本概念 栈是一种特殊的线性表,只允许在表的一端...这些内容不仅有助于理解栈的工作原理,还能帮助读者掌握栈的Java实现技巧,为进一步学习算法和数据结构打下坚实的基础。

    Java用栈实现的计算器

    Java提供了`java.util.Stack`类来实现栈。它继承自`Vector`类,因此提供了丰富的线程安全的方法,如`push()`, `pop()`, `peek()`等。在这个计算器项目中,我们可以创建一个栈对象来存储数字和运算符。 3. **表达式...

    java实现顺序栈

    Java实现顺序栈是一种常见的数据结构操作,主要用于存储和管理元素序列。栈是一种后进先出(LIFO,Last In First Out)的数据结构,通常用于执行回溯、递归等算法。在Java中,我们可以使用数组或ArrayList来实现顺序...

    java栈实现计算器中缀表达式

    “计算中缀表达式”可以称得上是一个特别经典的关于栈的算法题,几乎在所有数据结构教材中都会涉及,而且很多公司面试或者笔试的时候都会把这道题作为一个考察点。可以说,这是一道必须要掌握的算法题。中缀表达式、...

    java实现的栈(通过数组)

    java api 中也有stack,这个是根据stack的特性编写出来的; 此程序在功能上和java提供的功能是一样的,只是实现的方法不一样;

    java实现的栈

    本篇文章将深入探讨如何在Java中实现一个栈。 首先,Java的`java.util`包中已经为我们提供了一个现成的栈类`java.util.Stack`,它是`Vector`类的一个子类。`Stack`类提供了很多方便的方法,如`push()`用于压栈,`...

    java内存模型和线程安全

    java内存模型和线程安全,详细解析java的 堆栈模型和线程机制

    剑指offer算法实现java版——面试题21包含min函数的栈

    实现一个栈,要求使用O(1)时间获取栈中最小值,O(1)执行pop、push操作。

    线性表,单链表,栈 java实现

    下面将详细解释这些概念及其Java实现。 **线性表** 是一种基本的数据结构,它是由n(n&gt;=0)个相同类型元素构成的有限序列。线性表中的元素具有顺序关系,即每个元素都有一个前驱和后继,除了第一个元素没有前驱,...

    用Java语言实现栈的功能

    实现弹栈,进栈,判断栈是否为空或满等功能 Java入门的简单程序

    Java实现栈的基本操作

    Java实现栈的基本操作

    java模拟顺序栈实现回文串的判断

    Hui.java可能是实现栈的辅助类,它可能包含了栈操作的定义,如压栈(push)和弹栈(pop)等方法。例如: ```java public class Hui { private char[] stack; private int top; public Hui(int size) { stack =...

    用java通过接口实现栈和队列

    使用java实现栈和队列,通过接口实现多态

    java最新面试题宝典

    6. **栈结构**:"用java实现一个栈结构.txt"可能介绍了如何用Java实现栈,栈是一种后进先出(LIFO)的数据结构,常用于函数调用、表达式求值等。 7. **递归**:"递归问题的编程.txt"可能包含递归算法的实现和分析。...

Global site tag (gtag.js) - Google Analytics