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

郑州网站开发培训thegem wordpress主题

郑州网站开发培训,thegem wordpress主题,江永网站建设,接网站建设单子的网站题目传送门#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.hkea.cn/news/14440591/

相关文章:

  • 濮阳团购网站建设重庆市建设局网站
  • 网站建设公众学校资源网站建设有啥作用
  • 山西太原建设银行招聘网站开发一个app需要多长时间
  • 做个网站多少钱wordpress分享统计插件
  • 微信公众号的h5网站开发深圳黄页信息网
  • 长沙产品网站建设建设保护动物网站的素材
  • 商务网站建设报告书建设行业的门户网站
  • 贝壳找房网站做销售做设计需要知道的几个网站
  • 做网站企业 金坛wordpress外贸建站 视频
  • 天猫店买卖网站营销网络遍布全国
  • 海南行指网站开发公司网站流量统计工具有哪些
  • 黄岩做网站学电商哪个培训学校好
  • 合肥 做网站的网站建设个人
  • 网站建设案例分享wordpress添加导航栏
  • 网站开发有几种语言维护网站建设
  • 自己建站模板阿里巴巴国际站app
  • 集团网站源码哪些网站可以做旅游
  • 郑州网站建设代理做建筑效果图最好的网站
  • 男女之间做那个的网站哪个网站可以做平面兼职
  • 丰都网站建设联系电话wordpress 显示微信
  • 做网站用多大配置的服务器营销公司网站模板
  • 快站科技鞍山市网络销售平台
  • 怎么做虚拟的网站津南区提供网站建设协议
  • 1网站建设公司做图标去什么网站找
  • 国土局网站建设制度广告投放媒体
  • 大同网页设计aso关键词优化工具
  • 餐饮美食网站源码宁波seo排名优化培训
  • 要找企业做网站应该注意什么淘宝做导航网站
  • 南京网站设计哪家公司好百度网页版下载
  • 北京模板建站公司的介绍怎么写