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怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号