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

网站建设的一般流程网站建设开发方式包括

网站建设的一般流程,网站建设开发方式包括,网站怎么做最吸引人,航拍类wordpress模板文章目录232. 用栈实现队列补充知识——Deque232. 用栈实现队列 答案思路: 在push数据的时候,只要数据放进输入栈就好,但在pop的时候,操作就复杂一些,输出栈如果为空,就把进栈数据全部导入进来&#xff0…

文章目录

  • 232. 用栈实现队列
  • 补充知识——Deque

232. 用栈实现队列

答案思路:

在push数据的时候,只要数据放进输入栈就好,但在pop的时候,操作就复杂一些,输出栈如果为空,就把进栈数据全部导入进来(注意是全部导入),再从出栈弹出数据,如果输出栈不为空,则直接从出栈弹出数据就可以了。

如果进栈和出栈都为空的话,说明模拟的队列为空了。

class MyQueue {Deque<Integer> inStack;Deque<Integer> outStack;public MyQueue() {inStack=new LinkedList<Integer>();outStack=new LinkedList<Integer>();}public void push(int x) {inStack.push(x);}public int pop() {if(outStack.isEmpty()){popInStack();}return outStack.pop();}public int peek() {if(outStack.isEmpty()){popInStack();}return outStack.peek();}public boolean empty() {return inStack.isEmpty()&&outStack.isEmpty();}public void popInStack(){while(!inStack.isEmpty()){outStack.push(inStack.pop());}}
}

补充知识——Deque

定义
双向队列:支持插入删除元素的线性集合。
java官方文档推荐用deque实现栈(stack)。

和Queue的区别
Deque是double ended queue,将其理解成双端结束的队列,双端队列,可以在首尾插入或删除元素。
Queue的解释中,Queue就是简单的FIFO队列。
所以在概念上来说,Queue是FIFO的单端队列,Deque是双端队列。

特点
1.插入、删除、获取操作支持两种形式:快速失败和返回null或true/false
2.既具有FIFO特点又具有LIFO特点,即是队列又是栈
3.不推荐插入null元素,null作为特定返回值表示队列为空
4.未定义基于元素相等的equals和hashCode

方法

  • addFirst(): 向队头插入元素,如果元素为空,则发生NPE(空指针异常)
  • addLast(): 向队尾插入元素,如果为空,则发生NPE
  • offerFirst(): 向队头插入元素,如果插入成功返回true,否则返回false
  • offerLast(): 向队尾插入元素,如果插入成功返回true,否则返回false
  • removeFirst(): 返回并移除队头元素,如果该元素是null,则发生NoSuchElementException
  • removeLast(): 返回并移除队尾元素,如果该元素是null,则发生NoSuchElementException
  • pollFirst(): 返回并移除队头元素,如果队列无元素,则返回null
  • pollLast(): 返回并移除队尾元素,如果队列无元素,则返回null
  • getFirst(): 获取队头元素但不移除,如果队列无元素,则发生NoSuchElementException
  • getLast(): 获取队尾元素但不移除,如果队列无元素,则发生NoSuchElementException
  • peekFirst(): 获取队头元素但不移除,如果队列无元素,则返回null
  • peekLast(): 获取队尾元素但不移除,如果队列无元素,则返回null
  • pop(): 弹出栈中元素,也就是返回并移除队头元素,等价于removeFirst(),如果队列无元素,则发生NoSuchElementException
  • push(): 向栈中压入元素,也就是向队头增加元素,等价于addFirst(),如果元素为null,则发生NPE,如果栈空间受到限制,则发生IllegalStateException

实现
ArrayDeque: 基于数组实现的线性双向队列,通常作为栈或队列使用,但是栈的效率不如LinkedList高。
LinkedList: 基于链表实现的链式双向队列,通常作为栈或队列使用,但是队列的效率不如ArrayQueue高。

private static void usingAsQueue() {Deque<Integer> queue=new ArrayDeque<>();System.out.println("队列为空:"+queue.isEmpty());   //判断队列是否为空queue.addLast(12);   //添加元素System.out.println("队列为空:"+queue.isEmpty());   //判断队列是否为空System.out.println(queue.peekFirst());   //获取队列首部元素System.out.println(queue.pollFirst());   //获取并移除栈顶元素System.out.println("队列为空:"+queue.isEmpty());   //判断队列是否为空}private static void usingAsStack() {//作为栈使用Deque<Integer> stack=new LinkedList<>();System.out.println("栈为空:"+stack.isEmpty());   //判断栈是否为空stack.addFirst(12);System.out.println("栈为空:"+stack.isEmpty());   //判断栈是否为空System.out.println(stack.peekFirst());   //获取栈顶元素System.out.println(stack.pollFirst());   //获取并移除栈顶元素System.out.println("栈为空:"+stack.isEmpty());   //判断栈是否为空System.out.println("============================================");
http://www.yayakq.cn/news/805866/

相关文章:

  • 成都麦卡网络做网站开发怎么样个人网页开发毕业设计
  • 晋中推广型网站开发重庆川九建设有限责任公司官方网站
  • 郑州网站推建设供需网站开发
  • 电商网站 性能目标有哪些网站建设 网站开发 区别
  • 成品网站能用吗厦门网站搜索引擎优化
  • 旅游网站规划建设方案html5在线代码编辑器
  • 效果营销型网站建设网络销售推广
  • 利用公共dns做网站解析免费素材网站psd
  • 网站建设费用 开办费简捷的网站
  • 长沙网站优化公司seo推广招聘
  • 丰都网站建设报价网页怎么做链接
  • 可视化编辑网站开发高端品牌女装连衣裙
  • 苏州网站建设 江苏千渡北京标识设计制作
  • 台州网站建设优化案例品牌推广的概念
  • 网站开发软件开发流程做产品目录的网站
  • wordpress网站打开很慢wordpress xml文件
  • 网站关键词优化合同河南响应式建站
  • 专门做音效的网站淘宝联盟怎么建设网站
  • 搜索引擎网站模板免费软件恢复微信聊天记录
  • 网站有必要使用伪静态么wordpress推广提成
  • 教育网站模板下载网站规划说明
  • 阿里云网站 模板建设wordpress表单数据提交
  • 网站技术开发徐州英才网官网
  • 句容网站定制软件开发能干到多少岁
  • 天津网站建设信息淘客怎么做推广网站
  • 做零食的网站旅游门户网站建设
  • 济南网站建设 联系小七动态手机网站怎么做
  • 微信高端网站建设中企动力做网站服务怎么样
  • 网站换源码如何保留以前的文章北京做手机网站设计
  • 徐州市做网站搜索引擎外部链接优化