用Java写一个简单的栈,包括压栈、弹栈、查看栈容量、打印栈内元素及个数、打印栈顶元素等功能
IStack接口
public interface IStack {
// 判断栈是否为空
boolean isEmpty();
// 判断栈是否为满
boolean isFull();
//入栈
void push(Object obj);
//出栈 删除并返回栈顶元素
Object pop();
//获取栈顶元素
Object getTop();
//打印栈内元素
void display();
//获取栈的容量
int getStackSize();
//获取栈中元素个数
int length();
}
Stack实现类
/*
* 使用数组模拟栈的实现
* */
public class Stack implements IStack{
private Object[] stack;
//栈的容量
private int size;
//栈顶标记
private int top = -1;
public Stack() {
this.size = 10;
stack = new Object[10];
}
public Stack(int size) {
this.size = size;
stack = new Object[this.size];
}
public boolean isEmpty() {
if(top == -1)
{
return true;
}
return false;
}
// 判断栈是否为满
public boolean isFull() {
if(top == (size-1))
{
return true;
}
return false;
}
//入栈
public void push(Object obj) {
if(!isFull())
{
stack[++top] = obj;
}else {
System.out.println("栈已满");
}
}
//出栈 删除并返回栈顶元素
public Object pop() {
if(!isEmpty())
{
return stack[top--];
}
else {
System.out.println("栈为空");
}
return null;
}
//获取栈顶元素
public Object getTop() {
if(!isEmpty())
{
return stack[top];
}
else {
System.out.println("栈为空");
}
return null;
}
//打印栈内元素
public void display() {
if(!isEmpty())
{
for(int i = 0; i<=top ;i++)
{
System.out.println(stack[i]);
}
}
}
//获取栈的容量
public int getStackSize() {
return size;
}
//获取栈中元素个数
public int length() {
return top+1;
}
}
然后再写一个测试类测试就好了,完成