使用队列实现栈

来源:互联网 发布:vb.net 正则表达式 编辑:程序博客网 时间:2024/06/06 01:08
public class QueueToStack {


    private QueueX datas2;
    private QueueX datas1;


    public QueueToStack(int size){
        this.datas1 = new QueueX(size);
        this.datas2 = new QueueX(size);
    }
    public void push(Long data){
        if (!datas1.isEmpty()) {
            datas1.insert(data);
        } else if(!datas2.isEmpty()){
            datas2.insert(data);
        } else {
            datas1.insert(data);
        }


    }
    public Long pop(){
        if (!datas1.isEmpty()) {
            int d1S = datas1.getSize();
            for (int i = 0; i < d1S-1; i++) {
                datas2.insert(datas1.remove());
            }
            return (Long)datas1.remove();
        } else {
            int d2S = datas2.getSize();
            for (int i = 0; i < d2S-1; i++) {
                datas1.insert(datas2.remove());
            }
            return (Long)datas2.remove();
        }
    }
}