Maison  >  Article  >  Java  >  java关于栈的专题

java关于栈的专题

Y2J
Y2Joriginal
2017-04-24 13:38:001093parcourir

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());//异常抛出
	}
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn