/*
* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:封装一个栈类
* 作 者:薛广晨
* 完成日期:2012 年 10 月 12 日
* 版 本号:x1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
package xue;
public class Stack {
private int size;//栈中元素的个数
private int[] array;//存放栈中元素的
public Stack()
{
//栈的初始大小
array = new int[10];
size = 0;
}
public int getSize() {
return size;
}
//入栈
public void in(int number){
if(size >= array.length)
{
//栈已满
//1.得到一个新的大数组
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;
}
}
}
//测试类
package xue;
public class Stack_Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Stack stack = new Stack();
stack.in(1);
stack.in(2);
stack.in(3);
stack.in(4);
stack.in(5);
stack.in(6);
stack.in(7);
stack.in(8);
stack.in(9);
stack.in(10);
stack.in(11);
System.out.println("个数:" + stack.getSize());
System.out.println(stack.out());
System.out.println(stack.out());
System.out.println(stack.out());
System.out.println(stack.out());
}
}
运行结果: