剑指 Offer 09. 用两个栈实现队列

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
 
示例 1:
输入:
[“CQueue”,”appendTail”,”deleteHead”,”deleteHead”]
[[],[3],[],[]]
输出:[null,null,3,-1]
 
 
我的题解:
class CQueue {
        private int[] stack;
        private int top ;
        
        public CQueue() {
            stack=new int[1001];
            top=-1;
        }
        
        public void appendTail(int value) {
            stack[++top]=value;     
        }
        
        public int deleteHead() {
            if (top==-1) {
                return -1;
            }
            CQueue testQueue=new CQueue();
            for (int i = top; i >=0 ; i–) {
                testQueue.stack[++testQueue.top]=stack[i];
            }
            int deleteHead=testQueue.stack[top];
            for (int i = –top,j=0; i >= 0; i–) {  
                stack[j++]=testQueue.stack[i];
            }
            return deleteHead;
        }
    }
 
/**
 * Your CQueue object will be instantiated and called as such:
 * CQueue obj = new CQueue();
 * obj.appendTail(value);
 * int param_2 = obj.deleteHead();
 */
 
 

版权声明:本文为gaolight原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/gaolight/p/13162729.html