用栈实现队列,用队列实现栈(JAVA)

用两个栈实现队列 

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

用栈实现队列,用队列实现栈(JAVA)_第1张图片

用栈实现队列,用队列实现栈(JAVA)_第2张图片

    class CQueue {
        Stackin=new Stack<>();
        Stackout=new Stack<>();
        public CQueue() {
            Stackin=new Stack<>();
            Stackout=new Stack<>();
        }

        public void appendTail(int value) {
            while(!out.isEmpty())
            {
                int num=out.pop();
                in.push(num);
            }
            in.push(value);
        }

        public int deleteHead() {
            while(!in.isEmpty())
            {
                int num=in.pop();
                out.push(num);
            }
            if(out.isEmpty())return -1;
            return out.pop();
        }
    }

用队列实现栈

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

用栈实现队列,用队列实现栈(JAVA)_第3张图片

    class MyStack {

        LinkedListlist=new LinkedList<>();
        public MyStack() {
            LinkedListlist=new LinkedList<>();
        }

        public void push(int x) {
            list.push(x);
        }

        public int pop() {
           return list.pop();
        }

        public int top() {
           return list.peek();
        }

        public boolean empty() {
            return list.isEmpty();
        }
    }

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

用栈实现队列,用队列实现栈(JAVA)_第4张图片

class MyQueue {
        Stackin=new Stack<>();
        Stackout=new Stack<>();
        public MyQueue() {
            Stackin=new Stack<>();
            Stackout=new Stack<>();
        }

        public void push(int x) {
            while(!out.isEmpty())
            {
                int num=out.pop();
                in.push(num);
            }
            in.push(x);
        }

        public int pop() {
            while(!in.isEmpty())
            {
                int num=in.pop();
                out.push(num);
            }
            if(out.isEmpty())return -1;
            return out.pop();
        }

        public int peek() {
            while(!in.isEmpty())
            {
                int num=in.pop();
                out.push(num);
            }
            if(out.isEmpty())return -1;
            return out.peek();
        }

        public boolean empty() {
            if(in.isEmpty()&&out.isEmpty())return true;
            return false;
        }
    }

你可能感兴趣的:(数据结构,java,python,算法,数据结构)