Java简单栈的实现

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;
		else

			return 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;
		}
		
		else
			arrays[size++] = number;

	}

	// 判断栈是否为空
	public boolean isEmpty() {
		if (size == 0)
			return true;
		else
			return false;
	}

	// 判断栈是否满
	public boolean isFull() {
		if (size == capacity)
			return true;
		else
			return false;
	}

	// 取栈顶元素,但不改变栈的状态
	public int stackTop() {
		if (isEmpty() == false)
			return arrays[size - 1];
		else
			return -1;
	}
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值