您的位置:首页 > 运维架构

编写一个类,实现简单的栈操作。数据的操作按先进后出的顺序。成员函数为pop; push; size; full; empty; print等等

2014-09-21 20:05 661 查看
//栈的抽象类
package org.lina.stack;

public interface StackADT {
public void push(Object element);//进栈
public Object pop();//出栈
public int size();//栈的大小
public Boolean full();//是否是满栈
public Boolean empty();//是否是空栈
public void print();
}

//栈的实现
package org.lina.stack;

public class ArrayStack implements StackADT{
private  Object[] contents;
private  int top;//标记下一个入栈的位置,同时也表示栈的容量的大小
private  int SIZE=10;

public ArrayStack(){
contents=new Object[SIZE];
top=0;
}

public void push(Object element) {
// TODO Auto-generated method stub
//需要先判断栈是否已满
if(full()){
System.out.println("sorry,栈已满!");
}else{
contents[top++]=element;
}

}

@Override
public Object pop() {
// TODO Auto-generated method stub
if(empty()){
System.out.println("sorry,栈为空!");
return null;
}else{
return contents[--top];
}

}

@Override
public int size() {
// TODO Auto-generated method stub
return top;
}

public Boolean full() {
// TODO Auto-generated method stub
if(top==SIZE) return true;
else return false;
}

@Override
public Boolean empty() {
// TODO Auto-generated method stub
if(top==0) return true;
else return false;
}

@Override
public void print() {
// TODO Auto-generated method stub
for(int i=0 ;i<top;i++){
System.out.println("栈的第" + (i+1) + "个元素为:"+contents[i]);
}
}

public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayStack arrayStack = new  ArrayStack();
System.out.println("将0到9依次压栈,然后连续5次出栈");
for(int i=0;i<10;i++){
arrayStack.push(i);
}
for(int i=0;i<5;i++){
arrayStack.pop();
}

System.out.println("栈的大小为:" + arrayStack.size());
arrayStack.print();
System.out.println("栈为空吗?: " + arrayStack.empty());
System.out.println("栈满了吗?: " + arrayStack.full());
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java
相关文章推荐