LeetCode232

本文详细解析了LeetCode232题目的解决方案,即如何利用两个栈的数据结构来实现队列的基本操作,包括push、pop、peek和empty。通过具体的代码示例,深入理解栈和队列的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LeetCode232用栈实现队列

  1. 题目
  2. 代码
  3. 题目总结

题目为:
使用栈实现队列的下列操作:
push(x) – 将一个元素放入队列的尾部。
pop() – 从队列首部移除元素。
peek() – 返回队列首部的元素。
empty() – 返回队列是否为空。
示例:
MyQueue queue = new MyQueue();
queue.push(1);
queue.push(2);
queue.peek(); // 返回 1
queue.pop(); // 返回 1
queue.empty(); // 返回 false
具体代码:

       class MyQueue {
        public:
            /** Initialize your data structure here. */
            MyQueue() {
                
            }
            
            /** Push element x to the back of queue. */
            void push(int x) {
                std::stack<int>temp_stack;
                while(!_data.

empty())
            {
                temp_stack.push(_data.top());
                _data.pop();
            }
            temp_stack.push(x);//将新数据push 到临时栈中
            while(!temp_stack.empty())
            {
                _data.push(temp_stack.top());
                temp_stack.pop();
            }
        }
        
        /** Removes the element from in front of queue and returns that element. */
        int pop() {
            int m=_data.top();
            _data.pop();
            return m;
        }
        
        /** Get the front element. */
        int peek() {
            return _data.top();
        }
        
        /** Returns whether the queue is empty. */
        bool empty() {
            return _data.empty();
        }
        private:
        std::stack<int> _data;
    };
    
    /**
     * Your MyQueue object will be instantiated and called as such:
     * MyQueue obj = new MyQueue();
     * obj.push(x);
     * int param_2 = obj.pop();
     * int param_3 = obj.peek();
     * bool param_4 = obj.empty();
     */

题目总结
关于使用stack的基本操作来实现从栈到队列的整个变换。要求充分了解栈和队列的基本性质。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值