java栈的简单实现

原创 2016年05月30日 17:45:26
一、栈的定义  
     栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表  
    (1)通常称插入、删除的这一端为栈顶 (Top),另一端称为栈底 (Bottom);  
    (2)当表中没有元素时称为空栈;
    (3)栈为后进先出(Last In First Out)的线性表,简称为 LIFO 表

     栈的修改是按后进先出的原则进行,每次删除(退栈)的总是当前栈中" 最新"的元素,即最后插入(进栈)的元素,而最先插入的是被放在栈的底部, 要到最后才能删除。 

二、代码展示,实现从栈中加入和取出元素

package cn.java.stack;

public class Stack {
	
	private int[] dataArray;
	private int maxSize;
	private int top;
	
	public Stack(int max) {
		super();
		this.maxSize=max;
		dataArray=new int[max];
		top = -1;
	}

	public boolean push(int data) {
		if (top+1==maxSize) {
			System.out.println("栈已满,无法再加入数据");
			return false;
		}
		this.dataArray[++top]=data;
		return true;

	}
	
	public int pop() throws Exception {
		if (top==-1) {
			throw new Exception("栈为空");
		}
		
		return this.dataArray[top--];

	}
	
	public static void main(String[] args) {
		
		Stack stack=new Stack(5);
		stack.push(4);
		stack.push(41);
		stack.push(32);
		stack.push(76);
		stack.push(35);
		
		for (int i = 0; i <stack.maxSize; i++) {
			try {
				System.out.print(stack.pop()+" ");
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		
		
		
	}

}
三、输出result

35 76 32 41 4 



版权声明:本文为博主原创文章,未经博主允许不得转载。

JAVA栈的简单实现

package wanghm; class Stack{ int [] nums = new int[1]; int count; int capacity; Stack() { ...
  • qq_31344665
  • qq_31344665
  • 2017年07月17日 23:38
  • 55

JAVA栈的特性

栈有一个很重要的特殊性,就是存在栈中的数据可以共享。假设我们同时定义:    int a = 3;    int b = 3;    编译器先处理int a = 3;首先它会在栈中创建一个变量...
  • CarryBest
  • CarryBest
  • 2017年04月07日 17:02
  • 537

整数四则运算的java实现-栈和队列的使用练习

/*数据结构大作业要做简易解释器,其中得有对四则运算的处理,于是先写着练习,之后会把它转换成专门函数在大作业里调用。注:使用队列装值是由于实际用户输入的表达式中可能有变量名称,这时要用变量散列表获取变...
  • tian_mi_mi
  • tian_mi_mi
  • 2017年02月16日 19:11
  • 773

java栈

栈              ----限定仅在表尾进行插入或删除操作    线性表  |                ----后进先出    举例 Stack st=new Stac...
  • JimQ_Weng
  • JimQ_Weng
  • 2014年08月02日 22:50
  • 427

Java栈

我们天天在说java堆java栈,究竟什么是java栈? 首先需要明确一个概念,那就是通常我们说的堆、栈与java堆、java栈并不是一个东西。java堆和java栈可能都是在我们通常所说的堆中...
  • xorxos
  • xorxos
  • 2016年01月28日 19:31
  • 247

java实现栈结构

栈的定义         栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。       (1)通常称插入、删除的这一端为栈顶 (Top),另一端称为栈底 (Bottom)。 ...
  • caiwenfeng_for_23
  • caiwenfeng_for_23
  • 2013年01月12日 14:30
  • 25021

Java栈实现

数组实现的栈一:优点:插入和删除很快,缺点:长度有限 public class Stack { private int top = -1; private Object[] objs; pu...
  • a19881029
  • a19881029
  • 2014年03月30日 20:25
  • 10442

数据结构Java实现——①栈

首先,所谓栈,就是一个先进后出的一个线性表。其功能类似于一个水杯 只能从一端添加,而且也只能在该端删除,对每一个元素而已,先进后出...
  • u011446177
  • u011446177
  • 2015年01月04日 11:28
  • 559

Java基础之堆和栈、引用值

博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved !           人所共知,equals与==之间是有差...
  • liuxian13183
  • liuxian13183
  • 2012年08月06日 09:55
  • 1479

栈应用之中缀转后缀表达式计算(C++、JAVA)

在栈应用之中缀转后缀表达式(C语言版) 这篇文章中已经讲了如何把中缀表达式转化为后缀表达式,这一篇就讲如何计算后缀表达式,计算比转换容易得多得多了。C++代码实现下载 java代码实现下载 (...
  • qq_18297675
  • qq_18297675
  • 2017年01月29日 19:02
  • 1190
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java栈的简单实现
举报原因:
原因补充:

(最多只允许输入30个字)