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

做韩国外贸网站百度搜索收录入口

做韩国外贸网站,百度搜索收录入口,高中生沉迷哔哩哔哩怎么办,深圳网站设计g基础知识 队列(Queue):先进先出的数据结果,底层由双向链表实现 入队列:进行插入操作的一端称为队尾出队列:进行删除操作的一端称为对头 常用方法 boolean offer(E e) 入队 E(弹出元素的类型) poll() 出队 peek() 获取队头 int size 获取队列元素个数 boolean isEmpty(…

基础知识

队列(Queue):先进先出的数据结果,底层由双向链表实现

入队列:进行插入操作的一端称为队尾
出队列:进行删除操作的一端称为对头

常用方法

boolean offer(E e)  入队

E(弹出元素的类型) poll() 出队

peek() 获取队头

int size 获取队列元素个数

boolean isEmpty() 判定队列是否为空

设计循环队列

链接:https://leetcode.cn/problems/design-circular-queue/description/ 

思路:创建一个数组,useSize记录这个数组有效元素个数,rear记录这个数组(队列)下一个要插入的位置,front记录这个队列的对头,也就是要删除元素的位置.

插入元素:如果这个数组已经满了(useSize等于数组的长度),则插入失败返回false,没满就是往rear指向的位置放入一个元素,然后rear++,useSize++,值得注意的是这是一个循环队列,当rear指向的是数组的最后一个下标也就是(array.length-1),此时再如果让rear++,它就指向了array.length.数组是越界的,我们可以给一个判断条件,如果rear等于array.length,就让它重新等于0

删除元素:如果这个队列是空,则删除失败,不为空,就让front++,useSize--,这样就可以删除了,同理front也可能指向array.lenth,让他重新指向0就好了

获取队头元素:当队列为空获取失败,不为空就返回front下标指向的元素

获取队尾元素:当队列为空获取失败,不为空,因为rear指向的是下一个要插入的元素的位置,所以我们返回rear-1下标的元素就是当前的队尾元素,注意的是,当rear指向的是0时,也不为空说明它刚刚循环过来的,此时队尾元素就是数组最后的下标元素,返回即可

是否为空:useSize为0就为空,是否为满:useSize等于数组长度队列就满了

代码

class MyCircularQueue {private int[] array;private int front;private int rear;private int useSize;private int size;public MyCircularQueue(int k) {array = new int[k];size = k;}public boolean enQueue(int value) {if(isFull()){return false;}array[rear] = value;rear++;if(rear==size){rear=0;}useSize++;return true;}public boolean deQueue() {if(isEmpty()){return false;}front++;if(front==size){front=0;}useSize--;return true;}public int Front() {if(isEmpty()){return -1;}return array[front];}public int Rear() {if(isEmpty()){return -1;}if(rear-1<0){return array[size-1];}return array[rear-1];}public boolean isEmpty() {return useSize==0;}public boolean isFull() {return useSize==size;}
}

用队列实现栈

链接:https://leetcode.cn/problems/implement-stack-using-queues/

思路
创建俩个队列,qu1 和 qu2
入栈,如果qu1和qu2都为空(第一次入栈),就放入到qu1队列中,否则就入到不为空的队列中
出栈:找到不为空的队列,把useSize-1个元素移动到另一个队列当中去,如果俩个队列都为空,则出栈失败
查看栈顶元素:如果俩个队列都为空,查看失败,找到不为空的队列,把useSIze个元素移动到另一个队列中,每次入队列都用一个值来接收,这样入队列完成后,这个值就是栈顶元素,把它返回即可

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 x = qu1.poll();qu2.offer(x);}return qu1.poll();}else{int size = qu2.size();for(int i = 0;i<size-1;i++){int x = qu2.poll();qu1.offer(x);}return qu2.poll();}}public int top() {if(empty()){return -1;}if(!qu1.isEmpty()){int size = qu1.size();int x = -1;for(int i = 0;i<size;i++){x = qu1.poll();qu2.offer(x);}return x;}else{int size = qu2.size();int x = -1;for(int i = 0;i<size;i++){x = qu2.poll();qu1.offer(x);}return x;}}public boolean empty() {return qu1.isEmpty() && qu2.isEmpty();}
}

用栈实现队列

链接:https://leetcode.cn/problems/implement-queue-using-stacks/


思路:
创建俩个栈,
入队:直接放到第一个栈中,
出队:出第二个队列中的数据,如果第二个队列中没有,就把第一个栈中的所有元素弹入到第二个栈中,
(第二个栈的顺序就是队列的顺序) 

代码

class MyQueue {private Stack<Integer> qu1;private Stack<Integer> qu2;public MyQueue() {qu1 = new Stack();qu2 = new Stack();}public void push(int x) {qu1.push(x);}public int pop() {if(empty()){return -1;}if(qu2.isEmpty()){int size = qu1.size();while(size != 0){int x = qu1.pop();qu2.push(x);size--;}}return qu2.pop();}public int peek() {if(empty()){return -1;}if(qu2.isEmpty()){int size = qu1.size();while(size != 0){int x = qu1.pop();qu2.push(x);size--;}}return qu2.peek();}public boolean empty() {return qu1.isEmpty() && qu2.isEmpty();}
}

http://www.dinnco.com/news/59340.html

相关文章:

  • 做asp网站需要的实验报告单百度竞价是什么
  • 公司设计图片大全百度seo搜索排名
  • 代办公司注册一般多少钱网络推广优化方案
  • 北京好的做网站的公司微信营销工具
  • 网站建设 h5网页设计与制作案例教程
  • wordpress手机访问主题seo网络培训机构
  • 怎么用云主机做网站优化网络培训
  • wordpress站点地址seo基础培训教程
  • 怎样制作时时彩网站做seo点击工具
  • 网站开发加维护需要多少钱网络口碑营销案例
  • 福州建网站哪家好seo工资水平
  • 做网站空间百度云和阿里云区别互联网平台有哪些
  • 公司建网站多少seo最新快速排名
  • txt电子书下载网站推荐百度问答怎么赚钱
  • 网站规划名词解释百度客户服务中心
  • 网站公安备号市场调研的方法有哪些
  • 东莞搭建网站要多少钱海曙seo关键词优化方案
  • 网站之家app谷歌浏览器直接打开
  • 网站建设视频vs站长统计app下载免费
  • 哪个网站可以查到竣工资料怎么做精准客户资源购买
  • 沧州网站制作重庆seo是什么
  • 无锡网站推广百度指数爬虫
  • 网易企业邮箱邮件保存多久汕头seo网站建设
  • php 自动做网站点击量河南seo网站多少钱
  • 网站管理助手哪个好用cms自助建站系统
  • 莆田市秀屿区建设局网站旅游景点推广软文
  • 网站织梦模板软件推广赚佣金渠道
  • 做网站的怎么赚钱国际网络销售平台有哪些
  • 网站建设 选中企动力搜索引擎优化方式
  • 电信网站空间如何创建网站?