堆栈

 顺序栈:

定义一个接口:IStack<E>

public interface IStack<E> {
    E push(E item);
    E pop();
    E peek();
    int size();
    boolean empty();
     
}

定义一个SeqStack<E>类实现栈的抽象数据类型类

public class SeqStack<E> implements IStack<E> {
    
    private int maxsize;
    private E[] data;
    private int top;
    
    //初始化栈
    
    public SeqStack(Class<E> type,int size){
        data=(E[]) Array.newInstance(type, size);
        maxsize=size;
        top=-1;
    }
    
    //入栈
    public E push(E item) {
        // TODO Auto-generated method stub
        if(!isFull()){
            data[++top]=item;
            return item;
        }else
        return null;
    }
    
    //栈是否为满
    public boolean isFull() {
        // TODO Auto-generated method stub
        if(top==maxsize-1){
            return true;
        }else{
            return false;
        }
        
    }

    //出栈操作
    public E pop() {
        E item=null;
        if(!empty()){
            item=data[top--];
        }
        
        return item;
    }

    //获取栈顶元素
    public E peek() {
        // TODO Auto-generated method stub
        E item=null;
        if(!empty()){
            item=data[top];
        }
        return item;
    }

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

    public boolean empty() {
        // TODO Auto-generated method stub
        if(top==-1){
            return true;
        }else
        return false;
    }

}

主函数实现

public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] data={33,45,3,7,5};
        SeqStack<Integer> stack=new SeqStack<Integer>(Integer.class,data.length);
        //入栈
        System.out.println("******入栈*******");
        for(int i=0;i<data.length;i++){
            stack.push(data[i]);
            System.out.println(data[i]+"入栈");
        }
        
        int size=stack.size();
        System.out.println(size+"*******");
        //出栈
        System.out.println("***出栈****");
        for(int i=0;i<data.length;i++){
            stack.pop();
            System.out.println(stack.pop()+"出栈");
        }
        
    }
原文地址:https://www.cnblogs.com/sunli0205/p/6594688.html