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关于栈的专题的详细内容。