您的位置:首页 > 其它

栈——数组实现

2016-04-13 20:37 387 查看
public class SequeceStack<T> {private static int DEFAULT_SIZE = 16;private Object[] stack;private int n; //栈中实际元素个数private int max_capacity;/*** 以默认值构造栈*/public SequeceStack() {this(DEFAULT_SIZE);this.n=0;}/*** 指定值构造栈* @param args*/public SequeceStack(int capacity) {stack = new Object[capacity];this.n=0;}/*** 获得栈中元素个数* @param args*/public int getNumber() {return this.n;}/*** 判断栈是否为空* @param args*/public boolean isEmpty() {return (n==0? true:false);}/*** 入栈* @param args*/public boolean push(T data) {if(this.n<max_capacity) {System.out.println("栈已满,添加失败!");return false;}this.stack[this.n] = data;this.n++;return true;}/*** 出栈* @param args*/public T pop() {if(this.n<=0) {System.out.println("栈为空,出栈失败!");return null;}this.stack[n-1] = null;this.n--;return (T) this.stack[this.n];}/*** 为链表添加10容量*/public boolean addCapacity() {this.stack = new Object[this.max_capacity + 10];return true;}/*** 清空栈* @param args*/public boolean clear() {for(int i=0; i<this.n; i++) {this.stack[i] = null;}System.gc();return true;}public static void main(String[] args) {SequeceStack<String> ss = new SequeceStack<String>();//System.out.println(ss.isEmpty());for(int i=1; i<=10; i++) {ss.push(i + "");}ss.pop();for(int i=0; i<10; i++)System.out.println(ss.stack[i]);}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: