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

宁波网站建设优化免费二级域名分发网站

宁波网站建设优化,免费二级域名分发网站,青岛高端网站开发公司,做java网站后台开发需要什么技能232. 用栈实现队列 232.用栈实现队列 这里用两个栈来模拟队列以此实现队列的先进先出, 注意点 1.dump()方法将stackin的元素移入到stackout的操作,是要将stackin的全部元素放到stackout中,所以用while循环判断 stackIn是否为空 2.新建栈…

232. 用栈实现队列

232.用栈实现队列

这里用两个栈来模拟队列以此实现队列的先进先出,

注意点

1.dump()方法将stackin的元素移入到stackout的操作,是要将stackin的全部元素放到stackout中,所以用while循环判断 stackIn是否为空

2.新建栈的方法

class MyQueue {Stack<Integer> stackIn;Stack<Integer> stackOut;public MyQueue() {stackIn=new Stack<>();stackOut=new Stack<>();}public void push(int x) {// 将元素 x 推到队列的末尾stackIn.push(x);}public int pop() {//从队列的开头移除并返回元素dump();return stackOut.pop();}public int peek() {//返回队列开头的元素dump();return stackOut.peek();}public boolean empty() {// 如果队列为空,返回 true ;否则,返回 falsereturn stackIn.isEmpty()&&stackOut.isEmpty();}public void dump(){//如果stackout为空,那么把stackin的元素放到stackout中if(!stackOut.isEmpty()){return;}while(!stackIn.isEmpty()){//注意这里是while,这里如果是while(stackOut.isEmpty()),那么push进去一个就结束了// System.out.println(stackIn.pop());这里先pop了,导致后面empty()方法输出错误stackOut.push(stackIn.pop());}}
}/*** 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();* boolean param_4 = obj.empty();*/

225. 用队列实现栈

225.用队列实现栈

队列实现栈(需要二刷)

解法1 使用两个队列实现栈

  • offer() 是往队列中添加一个元素,若队列已满而仍往队列中添加,则会返回false
  • poll() 是删除队列中的第一个元素,在对空队列进行操作时,返回null
  • peek() 是输出队列的第一个元素,队列为空时,返回null
class MyStack {//使用两个队列实现站Queue<Integer> q1;Queue<Integer> q2;public MyStack() {q1=new LinkedList<>();q2=new LinkedList<>();}public void push(int x) {q2.offer(x);//先给q2添加一个元素while(!q1.isEmpty()){q2.offer(q1.poll());  //从q1拿出元素放到q2中}Queue<Integer> queueTemp;queueTemp=q1;q1=q2;q2=queueTemp;//交换q1和q2,将元素放到q1中}public int pop() {return q1.poll();}public int top() {return q1.peek();}public boolean empty() {return q1.isEmpty();}
}/*** Your MyStack object will be instantiated and called as such:* MyStack obj = new MyStack();* obj.push(x);* int param_2 = obj.pop();* int param_3 = obj.top();* boolean param_4 = obj.empty();*/

解法2 使用1个队列实现栈

思路是每次向队列添加一个元素后,对队列中的元素进行重新排序


class MyStack {//使用单个队列实现站Queue<Integer> q1;public MyStack() {q1=new LinkedList<>();}//每次push进来一个数,都对队列里面的数字进行重新排列public void push(int x) {q1.offer(x);//添加一个数字int size=q1.size();while(size-->1){q1.offer(q1.poll());}}public int pop() {return q1.poll();}public int top() {return q1.peek();}public boolean empty() {return q1.isEmpty();}
}/*** Your MyStack object will be instantiated and called as such:* MyStack obj = new MyStack();* obj.push(x);* int param_2 = obj.pop();* int param_3 = obj.top();* boolean param_4 = obj.empty();*/

http://www.khdw.cn/news/40991.html

相关文章:

  • 腾讯云wordpressseo百度推广
  • 有哪些可以做推广的网站百度广告一级代理
  • 商城网站开发嵌入支付宝1688关键词排名查询工具
  • 江苏宏澄建设有限公司网站石家庄新闻最新消息
  • 怎么做网站销售seo网站营销推广公司
  • 贵阳网站商城建设一级消防工程师考试
  • 电脑做系统网站如何做市场调研和分析
  • 策划文案的网站2022最新时事新闻及点评
  • 建企业网站用什么源码seo蜘蛛屯
  • 淘宝客网站怎么做推广百度搜索广告怎么收费
  • 用自己电脑做网站服务器网络销售公司
  • wordpress本地渗透成都网站seo外包
  • 安徽设计公司站长工具seo客户端
  • 深圳好客站seo2020年百度搜索排名
  • pc端网站手机版怎么做广州知名网络推广公司
  • 遵义做网站多少钱全网关键词搜索排行
  • 做标签的网站百度访问量统计
  • 官网静态html模板优化整站
  • 汉中网站建设淄博seo公司
  • 邵阳 做网站公司google谷歌搜索引擎
  • 连云港做网站建设网站推广优化价格
  • 网站SEM优化如何做百度爱采购竞价推广
  • 网站建设公司正规吗山东做网站公司
  • 5分钟宣传片报价明细seo工具软件
  • app对接网站登录要怎么做找关键词的三种方法
  • 淄博公司网站建设效果福州百度网站快速优化
  • wordpress更新口碑优化
  • 网站变exe文件怎么做一份完整的品牌策划方案
  • 淄博网站设计制作推广普通话黑板报
  • 如何电话推销客户做网站线上推广渠道有哪些方式