java利用简单数组实现栈
程序员文章站
2024-02-17 10:06:52
...
1.栈是一种先进会后出的数据结构,主要的操作为,void push(Object data),将data插入栈,void pop(),删除并返回最后一个插入栈中的元素。
2.辅助操作为:int top(),返回最后一个插入栈的元素,但是不删除 。int size(),返回存储在栈中元素的个数。 boolean isEmpty(),判断栈中是否有元素。 boolean isFull(),判断栈是否为满。
代码如下:
public class ArrayStack {
private int top;
private int capacity;
private Object [] array;
public ArrayStack(){
top=-1;//栈顶指针为-1
capacity=5;//初始化容量的大小
array=new Object[capacity];//初始化数组
}
public boolean isEmpty(){//判断是否为空
return top==-1;
}
public boolean isFull(){//判断是否是满栈的
return top==capacity-1;
}
public void push(Object data){//入栈操作
if(isFull()){
System.out.println("栈已经满,插入失败");
return;
}
array[++top]=data;
}
public Object pop(){//返回栈顶元素,并且删除
Object data=0;
if(isEmpty()){
System.out.println("栈为空,返回-1");
data=-1;
}
data=array[top--];
return data;
}
public Object top(){//返回栈顶元素,但是不删除
return array[top];
}
public int size(){//返回栈顶元素,但是不删除
return top;
}
public void showAll(){//显示栈中所有的值
for(int i=top;i>=0;i--){
System.out.print(" "+array[i]);
}
}
public static void main(String[] args) {
ArrayStack stack=new ArrayStack();
stack.push(1);
stack.push(2);
stack.showAll();
}
}
简单输出为:
里面还有其他的方法,请读者自行测试。若有疑问,请call me哦!!
上一篇: EIGRP协议的配置