mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
添加 0225.用队列实现栈.md Scala版本
This commit is contained in:
@ -815,6 +815,89 @@ class MyStack {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
Scala:
|
||||||
|
|
||||||
|
使用两个队列模拟栈:
|
||||||
|
```scala
|
||||||
|
import scala.collection.mutable
|
||||||
|
|
||||||
|
class MyStack() {
|
||||||
|
|
||||||
|
val queue1 = new mutable.Queue[Int]()
|
||||||
|
val queue2 = new mutable.Queue[Int]()
|
||||||
|
|
||||||
|
def push(x: Int) {
|
||||||
|
queue1.enqueue(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
def pop(): Int = {
|
||||||
|
var size = queue1.size
|
||||||
|
// 将queue1中的每个元素都移动到queue2
|
||||||
|
for (i <- 0 until size - 1) {
|
||||||
|
queue2.enqueue(queue1.dequeue())
|
||||||
|
}
|
||||||
|
var res = queue1.dequeue()
|
||||||
|
// 再将queue2中的每个元素都移动到queue1
|
||||||
|
while (!queue2.isEmpty) {
|
||||||
|
queue1.enqueue(queue2.dequeue())
|
||||||
|
}
|
||||||
|
res
|
||||||
|
}
|
||||||
|
|
||||||
|
def top(): Int = {
|
||||||
|
var size = queue1.size
|
||||||
|
for (i <- 0 until size - 1) {
|
||||||
|
queue2.enqueue(queue1.dequeue())
|
||||||
|
}
|
||||||
|
var res = queue1.dequeue()
|
||||||
|
while (!queue2.isEmpty) {
|
||||||
|
queue1.enqueue(queue2.dequeue())
|
||||||
|
}
|
||||||
|
// 最终还需要把res送进queue1
|
||||||
|
queue1.enqueue(res)
|
||||||
|
res
|
||||||
|
}
|
||||||
|
|
||||||
|
def empty(): Boolean = {
|
||||||
|
queue1.isEmpty
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
使用一个队列模拟:
|
||||||
|
```scala
|
||||||
|
import scala.collection.mutable
|
||||||
|
|
||||||
|
class MyStack() {
|
||||||
|
|
||||||
|
val queue = new mutable.Queue[Int]()
|
||||||
|
|
||||||
|
def push(x: Int) {
|
||||||
|
queue.enqueue(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
def pop(): Int = {
|
||||||
|
var size = queue.size
|
||||||
|
for (i <- 0 until size - 1) {
|
||||||
|
queue.enqueue(queue.head) // 把头添到队列最后
|
||||||
|
queue.dequeue() // 再出队
|
||||||
|
}
|
||||||
|
queue.dequeue()
|
||||||
|
}
|
||||||
|
|
||||||
|
def top(): Int = {
|
||||||
|
var size = queue.size
|
||||||
|
var res = 0
|
||||||
|
for (i <- 0 until size) {
|
||||||
|
queue.enqueue(queue.head) // 把头添到队列最后
|
||||||
|
res = queue.dequeue() // 再出队
|
||||||
|
}
|
||||||
|
res
|
||||||
|
}
|
||||||
|
|
||||||
|
def empty(): Boolean = {
|
||||||
|
queue.isEmpty
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
-----------------------
|
-----------------------
|
||||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||||
|
Reference in New Issue
Block a user