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());//异常抛出
}
} 0
0
相关文章
在Java中notify和notifyAll如何选择_Java线程唤醒解析
在Java中如何实现控制台版ATM系统_Java流程与逻辑实战解析
在Java里静态方法属于对象还是类_Java方法绑定机制说明
Java并发编程中CAS机制是什么_底层实现逻辑解析
在Java里如何编写基础配置读取程序_JavaProperties项目说明
java速学教程(入门到精通)
下载
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
C++ 设计模式与软件架构
本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。
8
2026.01.30
热门下载
最新文章








