当前位置:网站首页>用栈实现队列
用栈实现队列
2022-07-06 09:19:00 【[email protected]】
实现思路:
队列是先进先出(FIFO)
栈是后进先出(LIFO)
需要用两个栈来实现队列的先进先出
栈in实现push操作 栈out实现pop操作
我们push数据时先进的数据会被压入栈底,当我们重新把push进栈in的数据一个一个pop进栈out时,栈in底的元素此刻就成为了栈out顶部元素,所以pop数据时我们只需要pop栈out中的数据即完成队列的先进先出(FIFO)
入队时我们需要判断栈out是否为空,如果不为空,则需要pop栈out中的数据,如果为空,全部push进栈in
出队时我们需要判断栈in是否为空,如果不为空,则需要pop栈in中的数据,如果为空,全部push进栈out
具体代码如下:
//栈模拟队列
class MyQueue<E>{
public Stack<E> in = new Stack<E>(); // 入队栈
public Stack<E> out = new Stack<E>();// 出队栈
// 入队
public void offer(E e) {
while(!out.isEmpty()) {
in.push(out.pop());
}
in.push(e);
}
// 出队
public E poll() {
while(!in.isEmpty()) {
out.push(in.pop());
}
return out.pop();
}
}
版权声明
本文为[[email protected]]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_49194330/article/details/124736851
边栏推荐
- 【话题终结者】
- How to ensure data consistency between MySQL and redis?
- Rt-ppp test using rtknavi
- Exception: ioexception:stream closed
- [algorithm] sword finger offer2 golang interview question 6: sum of two numbers in the sorting array
- Wechat applet development experience
- Introduction and use of redis
- [algorithm] sword finger offer2 golang interview question 10: subarray with sum K
- Branch and loop statements
- Shortest Hamilton path (pressure DP)
猜你喜欢
10 minutes pour maîtriser complètement la rupture du cache, la pénétration du cache, l'avalanche du cache
阿里云微服务(一)服务注册中心Nacos以及REST Template和Feign Client
Alibaba cloud microservices (I) service registry Nacos, rest template and feign client
[GNSS data processing] Helmert variance component estimation analysis and code implementation
Code example of MATLAB reading GNSS observation value o file
Heap sort [handwritten small root heap]
View UI Plus 发布 1.2.0 版本,新增 Image、Skeleton、Typography组件
Redis介绍与使用
[algorithm] sword finger offer2 golang interview question 12: the sum of the left and right sub arrays is equal
TYUT太原理工大学2022数据库大题之分解关系模式
随机推荐
MYSQL索引钟B-TREE ,B+TREE ,HASH索引之间的区别和应用场景
Realization of the code for calculating the mean square error of GPS Height Fitting
系统设计学习(一)Design Pastebin.com (or Bit.ly)
Abstract classes and interfaces
Counter attack of flour dregs: redis series 52 questions, 30000 words + 80 pictures in detail.
Alibaba cloud microservices (I) service registry Nacos, rest template and feign client
系统设计学习(三)Design Amazon‘s sales rank by category feature
Rt-ppp test using rtknavi
4.30 dynamic memory allocation notes
错误: 找不到符号
Music playback (toggle & playerprefs)
初识C语言(上)
MySQL 30000 word essence summary + 100 interview questions, hanging the interviewer is more than enough (Collection Series
初识指针笔记
Experience summary of autumn recruitment of state-owned enterprises
阿里云一面:并发场景下的底层细节 - 伪共享问题
Heap sort [handwritten small root heap]
TYUT太原理工大学2022数据库大题之E-R图转关系模式
Problems and solutions of robust estimation in rtklib single point location spp
Application architecture of large live broadcast platform