题目要求:设计整数栈类
package stack;
public class Test
{
public static void main(String[] args)
{
StackOfIntegers stack = new StackOfIntegers();
for (int i = 1; i <= 20; i++)// 将1-20放入栈中
{
stack.push(i);
}
System.out.println("当前栈顶元素为:" + stack.peek());
System.out.println("当前栈中元素个数为:" + stack.getSize());
while (!stack.empty())
// 如果非空
System.out.print(stack.pop() + " ");// 删除栈顶元素并返回这个元素
System.out.println("\n最后栈中元素个数为:" + stack.getSize());
}
}
class StackOfIntegers
{
private int[] elements;
private int size;
public StackOfIntegers()// 构建一个默认容量为16的空栈
{
elements = new int[16];
}
public StackOfIntegers(int num)// 构建一个指定容量的空栈
{
elements = new int[num];
}
public boolean empty()// 如果栈为空则返回true
{
if (size == 0)
return true;
else
return false;
}
public int peek()// 返回栈顶的整数
{
return elements[size - 1];
}
public void push(int value)// 将一个整数存储到栈顶
{
if (size >= elements.length)// 如果栈中元素已满
{
int[] temp = new int[elements.length * 2];// 创建一个容量为当前栈容量两倍的临时数组
System.arraycopy(elements, 0, temp, 0, elements.length);// 将栈中元素复制到临时数组中
elements = temp;// 将临时数组的引用赋值给栈中数组
}
elements[size] = value;// 将新的元素放入栈顶
size++;// 下标扩增
}
public int pop()// 删除栈顶整数并返回这个整数
{
size--;
return elements[size];
}
public int getSize()// 返回栈中元素个数
{
return size;
}
}