博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetCode(37):Implement Queue using Stacks 分类: ...
阅读量:4364 次
发布时间:2019-06-07

本文共 1744 字,大约阅读时间需要 5 分钟。

Implement the following operations of a queue using stacks.

  • push(x) -- Push element x to the back of queue.
  • pop() -- Removes the element from in front of queue.
  • peek() -- Get the front element.
  • empty() -- Return whether the queue is empty.
Notes:

  • You must use only standard operations of a stack -- which means only push to toppeek/pop from topsize, and is empty operations are valid.
  • Depending on your language, stack may not be supported natively. You may simulate a stack by using a list or deque (double-ended queue), as long as you use only standard operations of a stack.
  • You may assume that all operations are valid (for example, no pop or peek operations will be called on an empty queue).
     
两个栈,一个作为压入栈,一个作为弹出栈。当弹出栈为空时,把压入栈中的数据依次弹出并压入到弹出栈中。如果两者均为空,说明队列为空。

class Queue {public:    // Push element x to the back of queue.    void push(int x) {        push_stack.push(x);    }    // Removes the element from in front of queue.    void pop(void) {        if (pop_stack.empty())		{			while (!push_stack.empty())			{				pop_stack.push(push_stack.top());				push_stack.pop();			}			if (!pop_stack.empty())				pop_stack.pop();		}		else		{			pop_stack.pop();		}    }    // Get the front element.    int peek(void) {        if (pop_stack.empty())		{			while (!push_stack.empty())			{				pop_stack.push(push_stack.top());				push_stack.pop();			}			if (!pop_stack.empty())				return pop_stack.top();		}		else		{			return pop_stack.top();		}		return 0;    }    // Return whether the queue is empty.    bool empty(void) {        if (pop_stack.empty() && push_stack.empty())			return true;		else			return false;    }    private:	stack
pop_stack; stack
push_stack;};

转载于:https://www.cnblogs.com/zclzqbx/p/4687062.html

你可能感兴趣的文章
Bundle Identifier
查看>>
node--更新数据库问题
查看>>
《JavaScript权威指南》学习笔记 第二天 下好一盘大棋
查看>>
PHP 进程详解
查看>>
51nod 1278 相离的圆
查看>>
程序媛,坚持这几个好习惯让你越来越美
查看>>
如何在本地运行查看github上的开源项目
查看>>
类成员函数模板特化
查看>>
十个利用矩阵乘法解决的经典题目
查看>>
sublime text3
查看>>
WPF 反编译后错误处理
查看>>
varnish基础
查看>>
3.3-3.9 周记
查看>>
博客换肤
查看>>
HDU 5025Saving Tang Monk BFS + 二进制枚举状态
查看>>
Web Magic 总体架构
查看>>
Scikit-Learn机器学习入门
查看>>
完美解决IE8有两个进程的问题
查看>>
jq的链式调用.end();
查看>>
不要怂,就是GAN (生成式对抗网络) (五):无约束条件的 GAN 代码与网络的 Graph...
查看>>