栈的数组实现(动态调整数组大小) JAVA版本
2015-06-09 16:16
253 查看
每项操作的用时都与集合大小无关
空间需求总是不超过集合大小乘以一个常数
代码实现参考《算法》第四版
空间需求总是不超过集合大小乘以一个常数
public class MyStack<T> implements Iterable<T>{ private T[] items = (T[]) new Object[1]; //栈元素 private int N = 0;//元素数量 public boolean isEmpty(){ return N == 0; } public int size(){ return N; } public void reSize(int max){ T[] temp = items; items = (T[]) new Object[max]; for(int i = 0 ;i < N ; i++){ items[i] = temp[i]; } } public void push(T item){ if(N == items.length) reSize(2 * N); items[N++] = item; } public T pop(){ T item = items[--N]; items = null; if(N > 0 && N == items.length/4) reSize(items.length/2); return item; } @Override public Iterator<T> iterator() { // TODO Auto-generated method stub return new StackIterator(); } class StackIterator implements Iterator<T>{ private int iteNum = N; @Override public boolean hasNext() { // TODO Auto-generated method stub return iteNum > 0; } @Override public T next() { // TODO Auto-generated method stub return items[--iteNum]; } } }
代码实现参考《算法》第四版
相关文章推荐
- JAVA的json处理器fastjson
- win7 JAVA Jdk安装与配置
- java内存
- java Double保留小数点位数
- java 工具栏
- java Thread state 分析
- java 根据经纬度获取地址
- Java中Comparable和Comparator实现对象比较
- spring 获取自定义配置文件properties中参数
- java 字符串拼接的单元测试
- 万年历(java实现)
- 万年历(java实现)
- 搭建Hibernate4开发环境并整合Spring3
- Java反射机制
- ws javaee实现方式以及TgsWebservice中 MQ发送延迟问题(柬埔寨项目)
- 搭建Struts2开发环境并整合Spring3
- 搭建Spring3开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- Struts+Spring+Hibernate整合入门详解
- Java项目开发问题汇总