package ch03;
public interface IStack<E> {
E push(E e);//入栈
E pop();//出栈
E peek();//取栈顶元素
int size();//获取栈中元素的各位
boolean isEmpty();//是否为空
void clear();//清空栈
}
package ch03;
import java.lang.reflect.Array;
public class SeqStack<E> implements IStack<E> {
E[] data;
int maxsize;
int top;
public SeqStack(Class<E> type,int maxsize){
data=(E[])Array.newInstance(type,maxsize);
this.maxsize=maxsize;
top=-1;
}
@Override
public E push(E e) {
// TODO Auto-generated method stub
if(top>=maxsize) {
System.out.print("the stack is empty!");
}else {
data[top]=e;
top++;
}
return null;
}
@Override
public E pop() {
if(top == 0) {
System.out.println("the stack is empty!");
}else {
top--;
}
return null;
}
@Override
public E peek() {
if(top != 0) {
return data[top-1];
}else {
return null;
}
}
@Override
public int size() {
// System.out.print("栈的长度:"+(top+1));
return top+1;
}
@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
if(top==-1)
{System.out.print("栈为空");}
return false;
}
@Override
public void clear() {
// TODO Auto-generated method stub
top=-1;
}
}
package ch03;
public class TestSeqStack {
public static void mian(String[] args) {
IStack<Integer> stack=new SeqStack<Integer>(Integer.class,5);
for(int i=1;i<=5;i++) {
stack.push(i*2);
}
for(int i=1;i<=5;i++) {
System.out.println(stack.pop()+" ");
}
}
}