Java简单栈的实现

来源:互联网 发布:知乎 做过最智障的事 编辑:程序博客网 时间:2024/05/29 18:55
package com.handy.ds;public class SimpleStack {// 栈数组private int[] arrays;// 栈的容量private int capacity;// 栈元素个数private int size;    //自动增长大小private int autoSize=5;public SimpleStack(int capacity) {size = 0;this.capacity=capacity;arrays = new int[capacity];}/** * @return the arrays */public int[] getArrays() {return arrays;}/** * @param arrays *            the arrays to set */public void setArrays(int[] arrays) {this.arrays = arrays;}/** * @return the capacity */public int getCapacity() {return capacity;}/** * @param capacity *            the capacity to set */public void setCapacity(int capacity) {this.capacity = capacity;}/** * @return the size */public int getSize() {return size;}/** * @param size *            the size to set */public void setSize(int size) {this.size = size;}   //增长函数public void extend(int increment){int[] extendStack=new int[capacity+increment];capacity=capacity+increment;for(int i=0;i<size;i++)extendStack[i]=arrays[i];     arrays=extendStack;}// 出栈,返回栈顶元素,改变栈的状态public int pop() {if (isEmpty() == true)return -1;elsereturn arrays[--size];}  // 进栈public void push(int number) {if (isFull() == true){System.out.println("栈已经满啦!");//capacity=capacity+autoSize;//arrays=new int[capacity];extend( autoSize);System.out.println("自动增长!"+"大小:"+autoSize);arrays[size++] = number;}elsearrays[size++] = number;}// 判断栈是否为空public boolean isEmpty() {if (size == 0)return true;elsereturn false;}// 判断栈是否满public boolean isFull() {if (size == capacity)return true;elsereturn false;}// 取栈顶元素,但不改变栈的状态public int stackTop() {if (isEmpty() == false)return arrays[size - 1];elsereturn -1;}}


原创粉丝点击