https://leetcode.com/problems/implement-stack-using-queues/description/ | Easy |
---|
Необходимо реализовать стек, используя только очереди. Стек должен поддерживать операции push(x) (добавление элемента), pop() (удаление и возврат верхнего элемента), top() (возврат верхнего элемента без удаления) и empty() (проверка, пуст ли стек). Для реализации можно использовать стандартную очередь с операциями добавления в конец и удаления из начала.
class MyStack {
private val queue = ArrayDeque<Int>()
fun push(x: Int) {
queue.addLast(x)
for (i in 1 until queue.size) {
queue.addLast(queue.removeFirst())
}
}
fun pop(): Int {
return queue.removeFirst()
}
fun top(): Int {
return queue.first()
}
fun empty(): Boolean {
return queue.isEmpty()
}
}