自定义栈
来源:互联网 发布:知柏地黄丸成分 编辑:程序博客网 时间:2024/05/02 02:40
<pre name="code" class="java"><pre name="code" class="java">public interface IStack {/** * 判断栈是否为空 */boolean isEmpty();/** * 清空栈 */void clear();/** * 栈的长度 */int length();/** * 数据入栈 */boolean push(Object data);/** * 数据出栈 */Object pop();/** * 获取栈顶数据 */Object getTop();}
public class StackImp implements IStack {private Object[] objs = new Object[16];private int size = 0;@Overridepublic boolean isEmpty() {return size == 0;}@Overridepublic void clear() {// 将数组中的数据置为null, 方便GC进行回收for (int i = 0; i < size; i++) {objs[size] = null;}size = 0;}@Overridepublic int length() {return size;}@Overridepublic boolean push(Object data) {// 判断是否需要进行数组扩容if (size >= objs.length) {resize();}objs[size++] = data;return true;}/** * 数组扩容 */private void resize() {Object[] temp = new Object[objs.length * 3 / 2 + 1];for (int i = 0; i < size; i++) {temp[i] = objs[i];objs[i] = null;}objs = temp;}@SuppressWarnings("unchecked")@Overridepublic Object pop() {if (size == 0) {return null;}return (Object) objs[--size];}@Overridepublic String toString() {StringBuilder sb = new StringBuilder();sb.append("MyArrayStack: [");for (int i = 0; i < size; i++) {sb.append(objs[i].toString());if (i != size - 1) {sb.append(", ");}}sb.append("]");return sb.toString();}@Overridepublic Object getTop() {// TODO Auto-generated method stubreturn objs[size - 1];}}
0 0
- 自定义栈
- 自定义栈
- 自定义链栈
- 自定义栈的应用
- 自定义栈类
- Struts2 自定义拦截栈
- Java数据结构--自定义栈
- Java实现自定义栈
- 自定义的栈集合
- 自定义栈和队列
- 自定义实现栈结构
- 自定义实现栈
- 自定义栈Stack<T>
- 自定义
- 自定义
- 自定义
- 自定义
- 自定义
- eclipse 打开server部署路径
- 2016SDAU编程练习二1015
- OC 基本的便利排序方法
- 微软2016校园招聘4月在线笔试题目解析
- 222. Count Complete Tree Nodes
- 自定义栈
- 专题二总结报告
- 第九周上机实践项目-项目3-工资类
- 【APM】开发环境配置
- 回溯算法之批处理作业调度
- set,bitset 的一个应用实例——数据结构和比较算法
- Java内存模型中的三个代
- Spring AOP初试
- 2016SDAU编程练习二1016