下压栈——能够动态调整数组大小的实现
来源:互联网 发布:织梦dedecms免费模板 编辑:程序博客网 时间:2024/04/28 16:00
public class ResizingArrayStack<Item> implements Iterable<Item> { private Item[] a = (Item[])new Object[1];//栈元素 private int N = 0;//元素数量 public boolean isEmpty(){ return N == 0; } public int size(){ return N; } public void resize(int max){ Item[] temp = (Item[])new Object[max]; for(int i = 0;i<N;i++){ temp[i] = a[i]; } a = temp; } public void push(Item item){ if(N == a.length) resize( 2 * a.length); a[N++] = item; } public Item pop(){ Item item = a[--N]; a[N] = null; if(N>0 && N == a.length/4) resize(a.length/2); return item; } @Override public Iterator<Item> iterator() { return new ReverseArrayIterator(); } private class ReverseArrayIterator implements Iterator<Item>{ private int i = N; @Override public boolean hasNext() { return i > 0; } @Override public Item next() { return a[--i]; } @Override public void remove() { throw new UnsupportedOperationException(); } }}
实现Iterable接口,这样就可以使用foreach方法了,内部类实现迭代方法,stack有加入和弹出的方法,因为要实现动态数组,需要实现resize()方法。使用数组来组织类型,
0 0
- 下压栈(能够动态调整数组大小的实现)
- 下压栈——能够动态调整数组大小的实现
- 下压(LIFO)栈(能够动态调整数组大小的实现)
- 算法1.1 下压(LIFO)栈 (能够动态调整数组大小的实现)
- 下压栈(能动态调整数组大小的实现)
- 下压栈(LIFO) (能动态调整数组大小的实现)
- 下压栈-能够自动调整数组大小实现并实现迭代功能
- 算法1.1 下压(LIFO)栈(能动态调整数组大小的实现)
- java算法之下压栈来动态调整数组大小
- 算法1.1 下压栈(LIFO)能动态调整数组的大小
- 算法(第四版)学习笔记之java实现能够动态调整数组大小的栈
- 下压栈:动态数组实现
- 栈的实现,动态调整数组大小
- Java下压栈实现-可调整数组大小(p88)
- 算法(第四版) 能够动态调整数组大小的队列数据结构
- 栈的数组实现(动态调整数组大小) JAVA版本
- Java动态调整数组大小
- 下压栈:链表实现
- 基于Metaio Creator的AR开发原创小白教程(零编程基础也能上手)
- nyoj 8 一种排序
- javascript实现web中table导出为excel
- 修改Settting中的出厂默认值
- 尿道有白色分泌物是怎么回事?
- 下压栈——能够动态调整数组大小的实现
- java海量数据处理方法
- ASP.NET之Log4net记录
- UISorlloview
- file added with wrong permissions, how to change?
- android代码审查工具---lint工具的使用
- 当你在浏览器中输入Google.com并且按下回车之后发生了什么?
- java数组操作
- PostgreSQL数据库不支持Geometry数据类型的解决方法