`
韩悠悠
  • 浏览: 839836 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

栈的java实现

 
阅读更多

 

        栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。

栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表。

 

package com.algorithm;

/**
 * 栈
 * @author lenovo
 *栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,
 *先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据
 *(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。
 *栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);
 *栈底固定,而栈顶浮动;
 *栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表。
 */
public class MyStack {

	//底层实现是一个数组
	private long[] attr;
	
	/**
	 * 栈顶
	 */
	private int top;
	
	/**
	 * 默认构造方法
	 */
	public MyStack(){
		attr = new long[10];
		top =-1;
	}
	
	/**
	 * 带参数构造方法,初始化栈大小
	 * @param maxsize
	 */
	public MyStack(int maxsize){
		attr = new long[maxsize];
		top =-1;
	}
	
	/**
	 * 添加数据
	 * @param value
	 */
	public void push(long value) {
		attr[++top]=value;
	}
	
	/**
	 * 移除数据
	 * @return
	 */
	public long pop() {
		return attr[top--];
	}
	
	/**
	 * 查看数据
	 * @return
	 */
	public long peek(){
		return attr[top];
	}
	
	/**
	 * 判断是否为空
	 * @return
	 */
	public boolean isEmpty() {
		return top==-1;
	}
	
	/**
	 * 判断栈是否满
	 * @return
	 */
	public boolean  isFull() {
		return top==attr.length-1;
	}
	
	public static void main(String[] args) {
		MyStack ms = new MyStack(4);
		ms.push(23);
		ms.push(12);
		ms.push(1);
		ms.push(90);
		System.out.println(ms.isEmpty());
		System.out.println(ms.isFull());
		
		System.out.println(ms.peek());
		System.out.println(ms.peek());
		
		while (!ms.isEmpty()) {
			System.out.print(ms.pop()+",");
		}
		
		System.out.println(ms.isEmpty());
		System.out.println(ms.isFull());
	}
}

 

 

分享到:
评论

相关推荐

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

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

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

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

    java 栈的实现和应用

    本文将深入探讨Java中栈的实现以及其在实际应用中的使用。 首先,我们来理解栈的基本概念。栈是一种特殊类型的线性数据结构,其中元素的添加和删除操作(称为入栈和出栈)只在数据结构的一端进行,这一端被称为栈顶...

    栈的Java语言实现

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

    用java实现的栈Stack类

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

    用Java实现一个栈

    用Java实现一个栈

    Java用栈实现的计算器

    本项目是利用栈来实现一个简单的计算器,不支持括号表达式的计算,其用户界面是通过Java Swing库构建的。下面将详细介绍这个计算器的实现原理以及涉及到的相关知识点。 1. **栈的基本概念**: 栈是一种线性数据...

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

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

    Java语言编写的数据结构-栈实现

    在这个主题中,我们将深入探讨如何在Java中实现栈这一基本数据结构,具体包括顺序栈(stack_SqStack)和链栈(stack_SLinkList)。 栈是一种后进先出(Last In First Out, LIFO)的数据结构,常用于临时存储和快速...

    java实现的栈(通过数组)

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

    Java实现栈的基本操作

    Java实现栈的基本操作

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

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

    java实现顺序栈

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

    链式栈的实现(java)

    在Java中,我们可以使用单链表来实现链式栈。下面将详细介绍链式栈的原理、实现以及相关操作。 **链式栈的基本概念** 栈是一种特殊的线性数据结构,遵循“后进先出”(Last In First Out, LIFO)原则。链式栈是用...

    用Java语言实现栈的功能

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

    java实现的顺序栈

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

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

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

    java实现的栈

    然而,如果你需要自定义栈的行为或者优化性能,你可以选择实现`java.util.Deque`接口或者直接继承`java.util.ArrayList`或`java.util.LinkedList`来创建自己的栈。例如,下面是一个基于`ArrayList`的栈实现: ```...

    java实现内存动态分配

    Java 实现内存动态分配主要涉及Java内存模型以及内存管理...综上所述,Java实现内存动态分配涉及到对堆内存、栈内存的理解,以及对垃圾回收机制的掌握。通过实验模拟,可以更直观地了解这些概念在实际操作中的应用。

    基于Java技术的一种modbus TCP协议栈的实现.pdf

    基于Java技术的一种modbus TCP协议栈的实现 本文对modbus TCP协议栈的实现进行了详细的分析和研究,介绍了基于Java技术的modbus TCP协议栈的构造,并结合了当前工业发展的需要,旨在实现远程监控工业机器与移动互联...

Global site tag (gtag.js) - Google Analytics