当前位置: 首页 > news >正文

夸克作文网站淄博团购网站建设

夸克作文网站,淄博团购网站建设,做建筑材料的网站,织梦移动端网站模板下载题目传送门#xff1a;Leetcode255.用队列实现栈 请你仅使用两个队列实现一个后入先出#xff08;LIFO#xff09;的栈#xff0c;并支持普通栈的全部四种操作#xff08;push、top、pop 和 empty#xff09;。 实现 MyStack 类#xff1a; void push(int x) 将元素 x 压… 题目传送门Leetcode255.用队列实现栈 请你仅使用两个队列实现一个后入先出LIFO的栈并支持普通栈的全部四种操作push、top、pop 和 empty。 实现 MyStack 类 void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的返回 true 否则返回 false 。 注意 你只能使用队列的基本操作 —— 也就是 push to back、peek/pop from front、size 和 is empty 这些操作。你所使用的语言也许不支持队列。 你可以使用 list 列表或者 deque双端队列来模拟一个队列 , 只要是标准的队列操作即可。 示例 输入 [MyStack, push, push, top, pop, empty] [[], [1], [2], [], [], []] 输出 [null, null, null, 2, 2, false]解释 MyStack myStack new MyStack(); myStack.push(1); myStack.push(2); myStack.top(); // 返回 2 myStack.pop(); // 返回 2 myStack.empty(); // 返回 False提示 1 x 9最多调用100 次 push、pop、top 和 empty每次调用 pop 和 top 都保证栈不为空 进阶你能否仅用一个队列来实现栈。 试题解析 已知队列是先进先出栈是先进后出。 当我们寻找栈顶元素时实际上是要将当前队列的尾元素输出但队列的pop()函数只能弹出队首这时便可以使用第二个辅助队列。具体方案 定义两个队列q1,q2q1为存放数据的队列q2是辅助队列每一步操作之后都要将数据存回q1 进行push操作时在q1中插入元素 进行pop操作时 1、将q1中的除了队尾之外的元素全部插入到q2队列中 2、在q1中删除剩下的元素即队尾元素 3、将q2队列中的元素再插回到q1中 class MyStack { public:queueint q1;queueint q2;MyStack() {}void push(int x) {q1.push(x);}int pop() {int n 0;while(n q1.size() - 1){//循环到q1只剩一个元素q2.push(q1.front());q1.pop();}int num q1.front();q1.pop();//将数据存回q1while(!q2.empty()){q1.push(q2.front());q2.pop();}return num;}int top() {return q1.back();}bool empty() {if(q1.empty()){return true;}return false;} }; 更好方案 从以上方法我们可以观察到q1是存放数据的队列q2为辅助队列每一次执行删除之后都要将q2的数据存回q1接下来的push,pop操作都是从q1开始 那么我们可不可以在每一次pop中都少一次存回q1的操作而将之后的push,pop操作开始于q2呢 已知我们每一次转移元素操作后都会有一个队列为空那么pop操作时我们只需要从不为空的队列开始操作即可 至于push操作在最开始时q1,q2都为空时我们将元素添加到q1对于之后的操作我们还是只需要从不为空的队列开始插入元素即可。 class MyStack { public:queueint q1;queueint q2;MyStack() {}void push(int x) {//若q1,q2都不为空则插入到q1后if(q1.empty()q2.empty()){q1.push(x);}else{//选择不空的队列插入元素if(!q1.empty()) q1.push(x);else if(!q2.empty()) q2.push(x);}}int pop() {int n 0;int num;//选择不空的队列操作if(!q1.empty()){while(n q1.size() - 1){q2.push(q1.front());q1.pop();}num q1.front();q1.pop();}else if(!q2.empty()){while(n q2.size() - 1){q1.push(q2.front());q2.pop();}num q2.front();q2.pop();}return num;}int top() {//选择不空的队列操作if(q1.empty()){while(!q2.empty()){q1.push(q2.front());q2.pop();}return q1.back();}else if(q2.empty()){while(!q1.empty()){q2.push(q1.front());q1.pop();}return q2.back();}return 0;}bool empty() {if(q1.empty()q2.empty()){return true;}return false;} };
http://www.zqtcl.cn/news/871061/

相关文章:

  • 家居类企业响应式网站一个很好的个人网站开发
  • 推荐网站建设服务器百度竞价入口
  • 微信如何做网站100个成功营销策划案例
  • 手机网站分享js代码外贸网站做几种产品
  • 文化网站建设论文wordpress模板打包
  • 学校网站查询做网站 先上线再调整
  • 如何制作一个好网站培训教育网站开发
  • 杭州市网站seo网站微信建设
  • 做购物网站 需要手续安徽科技学院
  • 网站顶部下拉广告网页游戏设计培训学校
  • 做seo的网站是怎么样的wordpress访问地图
  • 国外psd免费下载网站公司网站设计的公司
  • jsp sql 网站开发天津建站管理系统信息
  • 网站建设教程搭建浊贝湖南岚鸿给力企业网站定制公司
  • 网站建设与数据库维护 pdf廊坊seo关键字排名
  • 十元精品店做网站微信开发网站制作
  • 做乡镇网站地图上搜索不到的公司正规吗
  • 新材料 东莞网站建设多wordpress整合
  • 17做网店这个网站做起多少钱中信建设有限责任公司招标平台
  • 做慕课的网站一线设计公司
  • 官方网站app最新下载陕西建设厅八大员官方网站
  • 个体户可以备案网站吗运营
  • 政务网站模版建一个团购网站
  • 信用网站建设方案软文内容
  • PHP网站开发方向企业宣传片制作公司光年映画
  • 满城住房和城乡建设局网站上海最好的网站是什么
  • 网站建设合作网络营销是什么模式
  • 做个网站怎样做的网站建设刂搜金手指下拉贰肆
  • 颍上网站建设个人租车网站源码
  • 建设银行海外招聘网站顺义公司建站多少钱