网站怎么被百度收录营销网站建设网站设计
网站怎么被百度收录,营销网站建设网站设计,江苏扬州建设局网站,义安区住房和城乡建设局建网站今日学习的文章链接和视频链接
leetcode题目地址#xff1a;225. 用队列实现栈 代码随想录题解地址#xff1a;代码随想录
题目简介
请你仅使用两个队列实现一个后入先出#xff08;LIFO#xff09;的栈#xff0c;并支持普通栈的全部四种操作#xff08;push、top、p… 今日学习的文章链接和视频链接
leetcode题目地址225. 用队列实现栈 代码随想录题解地址代码随想录
题目简介
请你仅使用两个队列实现一个后入先出LIFO的栈并支持普通栈的全部四种操作push、top、pop 和 empty。
实现 MyStack 类
void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的返回 true 否则返回 false 。
看到题目的第一想法(可以贴代码
1. Java Queue类
队列是一种特殊的线性表它只允许在表的前端进行删除操作而在表的后端进行插入操作。
LinkedList类实现了Queue接口因此我们可以把LinkedList当成Queue来用。
class MyStack {QueueInteger q1;QueueInteger q2;public MyStack() {q1 new LinkedList();q2 new LinkedList();}public void push(int x) {if(q1.isEmpty()) q2.offer(x);else q1.offer(x);}public int pop() {if(q1.isEmpty()){dump();return q2.poll();} else{dump();return q1.poll();}}public int top() {if(q1.isEmpty()){dump();int res q2.element();q1.offer(q2.poll());return res;} else{dump();int res q1.element();q2.offer(q1.poll());return res;}}public boolean empty() return q1.isEmpty() q2.isEmpty();public void dump(){if(q1.isEmpty()) while (q2.size() 1) q1.offer(q2.poll());else while (q1.size() 1) q2.offer(q1.poll());}
}
实现过程中遇到哪些困难
无
看完代码随想录之后的想法
【解题思路】Java Queue 的基础操作。
看完视频自己写的ACC
class MyStack {QueueInteger q1;QueueInteger q2;public MyStack() {q1 new LinkedList();q2 new LinkedList();}public void push(int x) {q2.offer(x);while (!q1.isEmpty()) q2.offer(q1.poll());QueueInteger temp q2;q2 q1;q1 temp;}public int pop() {return q1.poll();}public int top() {return q1.element();}public boolean empty() {return q1.isEmpty();}}
学习时长
略 今日收获
1. Java Queue类
队列是一种特殊的线性表它只允许在表的前端进行删除操作而在表的后端进行插入操作。
LinkedList类实现了Queue接口因此我们可以把LinkedList当成Queue来用。
【初始化】QueueString queue new LinkedListString();
队列 Queue接口(LinkeList类) 常用方法
//add()和remove()方法在失败的时候会抛出异常(不推荐) add 增加一个元索 如果队列已满则抛出IIIegaISlabEepeplian异常 remove 移除并返回队列头部的元素 如果队列为空则抛出NoSuchElementException异常 element 返回队列头部的元素 如果队列为空则抛出NoSuchElementException异常 offer 添加一个元素并返回true 如果队列已满则返回false poll 移除并返问队列头部的元素 如果队列为空则返回null peek 返回队列头部的元素 如果队列为空则返回null put 添加一个元素 如果队列满则阻塞 take 移除并返回队列头部的元素 如果队列为空则阻塞 drainTo(list) 一次性取出队列所有元素
queue.isEmpty(), 为空返回true不为空返回false。queue.size(), 为空返回0不为空返回一个大于1的整数。
知识点 remove、element、offer 、poll、peek 其实是属于Queue接口。
2. 【初始化】
QueueString q1 new LinkedListString();
QueueInteger q1 new ArrayDeque();
DequeInteger q1 new ArrayDeque();
3. 双端队列 Deque类 常用方法
由于Deque继承了Queue接口因此它继承了Queue接口的所有方法Deque还包括以下方法 addFirst() - 在双端队列的开头添加指定的元素。如果双端队列已满则引发异常。 addLast() - 在双端队列的末尾添加指定的元素。如果双端队列已满则引发异常。 offerFirst() - 在双端队列的开头添加指定的元素。如果双端队列已满则返回false。 offerLast() - 在双端队列的末尾添加指定的元素。如果双端队列已满则返回false。 getFirst() - 返回双端队列的第一个元素。如果双端队列为空则引发异常。 getLast() - 返回双端队列的最后一个元素。如果双端队列为空则引发异常。 peekFirst() - 返回双端队列的第一个元素。如果双端队列为空则返回null。 peekLast() - 返回双端队列的最后一个元素。如果双端队列为空则返回null。 removeFirst() - 返回并删除双端队列的第一个元素。如果双端队列为空则引发异常。 removeLast() - 返回并删除双端队列的最后一个元素。如果双端队列为空则引发异常。 pollFirst() - 返回并删除双端队列的第一个元素。如果双端队列为空则返回null。 pollLast() - 返回并删除双端队列的最后一个元素。如果双端队列为空则返回null。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91350.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!