• 技术文章 >Java >java教程

    java关于栈的专题

    Y2JY2J2017-04-24 13:38:00原创724
    package java栈;
    public class Stack {
    	private int maxSize;
    	private Object[] data;
    	private int top;//栈顶位置
    	/**
    	 * 初始化栈
    	 * @param maxSize
    	 */
    	public Stack(int maxSize){
    		this.maxSize = maxSize;
    		data = new Object[maxSize];
    		top = -1;
    	}
    	
    	/**
    	 * 获取长度
    	 * @param args
    	 */
    	public int getLength(){
    		return this.maxSize;
    	}
    	/**
    	 * 返回栈中元素个数
    	 * @param args
    	 */
        public int getCount(){
        	return top+1;
        }
    	/**
    	 * 判断栈空
    	 * @param args
    	 */
    	public boolean isEmpty(){
    		return top == -1;
    	}
    	/**
    	 * 判断栈满
    	 * @param args
    	 */
    	public boolean isFull(){
    		return top+1 == this.maxSize;
    	}
    	/**
    	 * 入栈
    	 * @param args
    	 * @throws Exception 
    	 */
    	public boolean push(Object data) throws Exception{
    		if(isFull()){
    			throw new Exception("栈已满");
    			
    		}else{
    			this.data[++top] = data;
    			return true;
    		}
    	}
    	/**
    	 * 出栈
    	 * @param args
    	 * @throws Exception 
    	 */
    	public Object pop() throws Exception{
    		if(isEmpty()){
    			throw new Exception("栈已空");
    		}else{
    			return this.data[top--];
    		}
    	}
    	/**
    	 * 返回栈顶元素
    	 * @param args
    	 */
    	public Object peek(){
    		return this.data[this.getCount()];
    	}
    	public static void main(String[] args) throws Exception {
    		Stack stk = new Stack(6);
    		System.out.println("栈空间大小为:" + stk.getLength());
    		System.out.println("入栈1:" + stk.push(1));
    		System.out.println("入栈2:" + stk.push(2));
    		System.out.println("入栈3:" + stk.push(3));
    		System.out.println("入栈4:" + stk.push(4));
    		System.out.println("入栈5:" + stk.push(5));
    		System.out.println("入栈6:" + stk.push(6));
    		//System.out.println("入栈7:" + stk.push(7));
    		System.out.println("栈元素个数:" + stk.getCount());
    		System.out.println("返回头:" + stk.peek());
    		
    		System.out.println("出栈:" + stk.pop());
    		System.out.println("出栈:" + stk.pop());
    		System.out.println("出栈:" + stk.pop());
    		
    		//System.out.println("出栈:" + stk.pop());//异常抛出
    	}
    }

    以上就是java关于栈的专题的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:java,栈
    上一篇:java实现替换字符串中的空格思路和代码 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • Java中Map集合体系的基本使用和常用API• Java数据结构常见排序算法(总结分享)• 一起来分析java设计模式之单例• 深入分析Java的序列化与反序列化• Java知识点总结之多线程基础
    1/1

    PHP中文网