java实现一个栈
来源:互联网 发布:软件光盘品牌 编辑:程序博客网 时间:2024/05/17 09:02
实现一个栈
栈是一个比较常用的数据结构 无论面试还是算法比赛
follow me progress step by step:
- 初始化
- 入栈
- 出栈
- 获取栈顶
- *判空
- 获取栈内元素个数/栈的大小
- 动态变长
- 用泛型使得代码变得适用性更强
- 异常处理
以下为具体实现代码
分为两个类 一个栈的实现类 一个测试类
Stack.java
package arithmetic;
import java.util.Arrays;
/**
* what’s stack
* implements
* @author Administrator
*
*/
public class Stack {
private int size=0;
private Object[] array;
/**
* 默认初始化 默认构造方法
*/
public Stack(){
this(10);
}
/**
* 带参数构造方法
* @param i
*/
public Stack(int initialCapacity) {
if(initialCapacity<=0){
throw new RuntimeException(“初始化栈空间错误”);
}
array=new Object[initialCapacity];
}
/** * 入栈 */public E push(E item){ ensureCapacityHelper(size+1); array[size++]=item; return item;}/** * 获取栈顶元素 */public E peek(){ if(isEmpty()){ throw new IndexOutOfBoundsException("栈已经空"); } return (E) array[size-1];}/** * 出栈 获取栈顶元素 */public E pop(){ E item=peek(); size--; return item;}/** * 判空 */private boolean isEmpty() { return size==0;}/** * 确保空间够用 */private void ensureCapacityHelper(int minCapacity) { if(minCapacity>array.length){ //调用方法 扩容 grow(); }}/** * 动态扩容 */private void grow(){ int oldCapacity=array.length; int newCapacity=oldCapacity*2; if(newCapacity<oldCapacity){ throw new OutOfMemoryError(); }else{ array=Arrays.copyOf(array,newCapacity); }}
}
test.java
package arithmetic;
public class test {
public static void main(String[] args) { Stack<String> s=new Stack<String>(); s.push("abc"); s.push("bcde"); System.out.println(s.pop()); System.out.println(s.peek());}
}
1 0
- java 实现一个栈
- java实现一个栈
- java实现一个栈
- //用JAVA实现一个栈操作
- 两个栈实现一个队列(java)
- Java两个栈来实现一个队列
- java两个栈实现一个队列
- java-用两个栈实现一个队列
- java实现一个过滤器
- java实现一个死锁
- java实现一个窗口
- Java实现一个HashMap
- 用两个栈实现一个队列 JAVA实现
- 用两个队列实现一个栈 JAVA实现
- java 实现 两个栈实现一个队列的功能
- 两个栈实现一个队列以及两个队列实现一个栈(Java)
- 两个队列实现一个栈 + 两个栈实现一个队列 Java
- 两个栈实现一个队列,两个队列实现一个栈-JAVA
- springMVC初识,前台页面传入后台的4种方法
- tcp四次挥手
- Android 实现卫星导航
- [Leetcode] Summary Ranges
- 关于Xcode报错, 但编译,运行正常情况
- java实现一个栈
- Android的对话框显示与隐藏
- C#中使用托管C++类,委托调用,以供托管C++类的成员函数回调的实现方式
- 程序员技巧---调试
- redis
- spring mvc 使用kaptcha生成验证码
- Unity-使用UIAnchor 和 UIStretch适配
- Android Studio 2.2 来啦!
- java BigInteger hex