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栈+队列实现简单的停车场管理问题

问题描述 设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。 车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。 如果停车场已放满...

Java栈的实现

栈定义栈(stack)是限定仅在表尾进行插入或删除操作的线性表。 对栈来说,表尾端有其特殊含义,称为栈顶(top),相应地表头端称为栈底(bottom)。不含元素的空表称为空栈。栈的修改是按后进先出...
  • yybmec
  • yybmec
  • 2015年04月13日 15:39
  • 499

java栈的实现

1.栈的填充public class MyStack { private Object[]src=new Object[0]; public void push(E e){ Object[...

Java栈的两种实现方式

用数组和链表两种方式来实现了栈 首先来看用数组实现的,比较简单import java.util.Arrays;/* * 用数组来实现一个栈 * 栈:后进先出 * 主要有push pop pee...

Java栈实现判断分隔符是否匹配

思路: 一个匹配的分隔符可以被其他分隔符分开,即分隔符允许嵌套。 因此,一个给定的右分隔符只有在其前面的所有右分隔符都匹配上之后才能进行匹配。 可见,最先进的左分隔符在最后才能进行匹配,与栈式存储结构...

二.Java栈与队列的实现:

栈和队列是两种相像的经典的数据类型,都是对数据添加删除做限制的线性表。其不同之处就在于出栈(pop)和出列(dequeue)的方式。栈是先进后出,队列是先进先出。Java虽说没有所谓的指针,但其实对于...

Java栈的实现(顺序栈、链式栈)及栈的应用

1. 顺序栈的实现 package lang; import java.io.Serializable; import java.util.Arrays; /** * @ClassName: ...

Java栈实现:数组实现和链表实现

java数据结构的栈的数组实现和链表实现

Java栈数据结构的实现方式

原文转载:http://www.codeceo.com/article/java-stack.html 栈是Java语言中最重要的数据结构之一,它的实现,至少应该包括以下几个方法:1,pop() 出...
  • ghui23
  • ghui23
  • 2016年08月14日 21:17
  • 116

java栈的应用:实现括号匹配检测

package stack; /** * 栈的链式存储模型:基于链表作为存储结构实现的,本例通过单链表实现; * 指针top为链表结点引用,始终指向栈顶元素所在的结点; * @author US...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java栈的简单实现
举报原因:
原因补充:

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