关闭

java栈的简单实现

154人阅读 评论(0) 收藏 举报
分类:
一、栈的定义  
     栈(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 



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:79980次
    • 积分:1091
    • 等级:
    • 排名:千里之外
    • 原创:44篇
    • 转载:15篇
    • 译文:0篇
    • 评论:0条