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

网站加油站网站建设 工作建议

网站加油站,网站建设 工作建议,如何帮人做网站,企业画册尺寸一般多大目录 1.队列实现栈 1.1创建栈 1.2判断是否为空 1.3入栈 1.4出栈 1.5获取栈顶元素 1.6完整代码 2. 用栈实现队列 2.1创建队列 2.2判断是否为空 2.3入队列 2.4出队列 2.5获取队头元素 2.6完整代码 1.队列实现栈 用队列实现栈https://leetcode.cn/problems/impleme…

目录

1.队列实现栈

1.1创建栈

1.2判断是否为空

1.3入栈

1.4出栈

1.5获取栈顶元素

1.6完整代码

2. 用栈实现队列

2.1创建队列

2.2判断是否为空 

2.3入队列

2.4出队列

2.5获取队头元素

2.6完整代码


1.队列实现栈

用队列实现栈icon-default.png?t=N7T8https://leetcode.cn/problems/implement-stack-using-queues/

描述: 

 

方法:我们用两个队列来实现栈

整体思路:

1.1创建栈

代码: 

public class MyStack {private Queue<Integer> qu1;private Queue<Integer> qu2;public MyStack(){qu1=new LinkedList<>();qu2=new LinkedList<>();}}

1.2判断是否为空

只要qu1与qu2都为null时,栈就为空

代码: 

 public boolean empty() {return qu1.isEmpty() && qu2.isEmpty();}

1.3入栈

(1)我们对两个队列进行检查,那个队列不为空,我们就把元素放在那个队里

(2)若元素都为空,则我们把元素放在qu1里

代码: 

  public void push(int x) {if (!qu1.isEmpty()) {qu1.offer(x);} else if (!qu2.isEmpty()) {qu2.offer(x);} else {qu1.offer(x);}}

1.4出栈

(1)我们对两个队列进行检查,若都为空,返回-1。

(2)只要不是(1)则先检查qu1,再先检查qu2,将不为空的队列出size-1个元素到另一个队列里

代码:

    public int pop() {if (empty()) {return -1;}if(!qu1.isEmpty()){int size=qu1.size() ;for (int i = 0; i <size-1; i++) {int val=qu1.poll();qu2.offer(val);}return qu1.poll();} else {int size=qu2.size() ;for (int i = 0; i <size-1; i++) {int val=qu2.poll();qu1.offer(val);}return qu2.poll();}}

1.5获取栈顶元素

与出栈方法类似

  public int top() {if (empty()) {return -1;}if(!qu1.isEmpty()){int val=-1;int size=qu1.size() ;for (int i = 0; i <size; i++) {val=qu1.poll();qu2.offer(val);}return val;} else {int val=-1;int size=qu2.size() ;for (int i = 0; i <size; i++) {val=qu2.poll();qu1.offer(val);}return val;}}

1.6完整代码

import java.util.LinkedList;
import java.util.Queue;public class MyStack {private Queue<Integer> qu1;private Queue<Integer> qu2;public MyStack() {qu1 = new LinkedList<>();qu2 = new LinkedList<>();}public void push(int x) {if (!qu1.isEmpty()) {qu1.offer(x);} else if (!qu2.isEmpty()) {qu2.offer(x);} else {qu1.offer(x);}}public int pop() {if (empty()) {return -1;}if(!qu1.isEmpty()){int size=qu1.size() ;for (int i = 0; i <size-1; i++) {int val=qu1.poll();qu2.offer(val);}return qu1.poll();} else {int size=qu2.size() ;for (int i = 0; i <size-1; i++) {int val=qu2.poll();qu1.offer(val);}return qu2.poll();}}public int top() {if (empty()) {return -1;}if(!qu1.isEmpty()){int val=-1;int size=qu1.size() ;for (int i = 0; i <size; i++) {val=qu1.poll();qu2.offer(val);}return val;} else {int val=-1;int size=qu2.size() ;for (int i = 0; i <size; i++) {val=qu2.poll();qu1.offer(val);}return val;}}public boolean empty() {return qu1.isEmpty() && qu2.isEmpty();}
}

2. 用栈实现队列

描述: 

用栈实现队列icon-default.png?t=N7T8https://leetcode.cn/problems/implement-queue-using-stacks/

 方法:两个栈来实现队列

2.1创建队列

public class MyQueue {private Stack<Integer> stack1;private Stack<Integer> stack2;public MyQueue() {stack1 = new Stack<>();stack2 = new Stack<>();}
}

2.2判断是否为空 

只要stack1与stack2都为null时,队列就为空

public boolean empty() {return stack1.empty()&&stack2.empty();}

2.3入队列

入栈的元素全部放入stack1中

 public void push(int x) {stack1.push(x);}

2.4出队列

出栈时,检查stack2是否为null,若为null,则直接将stack1的元素出栈后入到stack2里

然后弹出栈顶元素即可

   public int pop() {if (empty()){return -1;}if(stack2.empty()){while(!stack1.empty())  {stack2.push(stack1.pop());}}return stack2.pop();}

2.5获取队头元素

public int peek() {if (empty()){return -1;}if(stack2.empty()){while(!stack1.empty())  {stack2.push(stack1.pop());}}return stack2.peek();}

2.6完整代码

import java.util.Stack;public class MyQueue {private Stack<Integer> stack1;private Stack<Integer> stack2;public MyQueue() {stack1 = new Stack<>();stack2 = new Stack<>();}public void push(int x) {stack1.push(x);}public int pop() {if (empty()){return -1;}if(stack2.empty()){while(!stack1.empty())  {stack2.push(stack1.pop());}}return stack2.pop();}public int peek() {if (empty()){return -1;}if(stack2.empty()){while(!stack1.empty())  {stack2.push(stack1.pop());}}return stack2.peek();}public boolean empty() {return stack1.empty() && stack2.empty();}
}

以上为我个人的小分享,如有问题,欢迎讨论!!! 

都看到这了,不如关注一下,给个免费的赞 

 

http://www.15wanjia.com/news/189236.html

相关文章:

  • 网站公司做的网站被攻击怎么做淘宝客手机网站推广
  • wordpress 媒体库优化长沙官网seo收费标准
  • 小金县建设局网站网站建设过程总结
  • 山东滕州做网站技术电话他达拉非片
  • 网站后台数据库下载电商网站建设教程
  • 昆明网络公司网站建设如何推广app更高效
  • 子网站建设工作室泉州网站建设论坛
  • 网站建设找谁好手机网站建设经典教程
  • 1m的带宽做网站可以吗安徽省城乡与住房建设厅网站
  • 10000ip网站怎么做网站首页 模板
  • 电子商务网站开发问题研究建设网站需要准备什么资料
  • 农业网站建设模板【邯郸网络推广公司|邯郸网络营销公司】
  • 如何套用别人网站模板网络建设文章网站
  • 广东企业网站seo报价wap网站 什么意思
  • 网站建设方案公司做公司 网站建设价格
  • dedecms 百度网站地图公司管理系统下载
  • 中国网站建设公司排行榜google关键词搜索工具
  • 精美大气的餐饮类企业网站建设商城购物网站
  • 手机网站缩放辽宁建设工程信息网专家名单
  • 可以做网站素材的服装网站开发有哪些新技术
  • 做网站的接私活犯法吗做pc网站会连带手机版
  • 网站建设与管理的就业方向贵州网站建设哪家好
  • 网站备案在哪查我想做亚马逊网站怎么做
  • 网站注册域名查询吉安网站建设jxthw
  • wordpress搜索页面模板廊坊百度快照优化
  • 成都建设网站公司男人最好用的浏览器
  • 公司网站建站哪个系统好用网站制作2019趋势
  • 企业自适应网站制作跳蚤市场网站开发背景
  • 网站域名空间5个G的多少钱北京网络科技公司名单
  • 寻花问柳专注做男人喜爱的网站厦门物流网站建设