/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 《栈——数据结构Java》
* 作 者: 刘江波
* 完成日期: 2012 年 10 月 14 日
* 版 本 号: v2.1
* 对任务及求解方法的描述部分
* 问题描述:
* 程序头部的注释结束
*/
public class Stack
{
private int size; //栈中元素的个数
private int[] array;//存放栈中元素的数组
private int MaxSize;//栈空间的最大尺寸
//构造函数
public Stack(int size){
MaxSize = size;
array=new int[MaxSize];
this.size=0;
}
//入栈
public void in(int number){
if(size>=MaxSize){
//栈已满
//1.得到一个新的大数组(2倍数组)
int[] array_new=new int[2*array.length];
//2.数据转移
System.arraycopy(array, 0, array_new, 0, array.length);
//3.改指向
array=array_new;
}
//栈没有满的时候
array[size]=number;
size++;
}
//出栈
public int out(){
if(size==0){
//栈已经空了
return -404;
}else{
//栈还可以出元素
int number=array[size-1];
size--;
return number;
}
}
//获取栈中元素的个数
public int getSize()
{
return size;
}
}