All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g0201_0300.s0225_implement_stack_using_queues.MyStack.kt Maven / Gradle / Ivy

package g0201_0300.s0225_implement_stack_using_queues

// #Easy #Stack #Design #Queue #2024_08_17_Time_147_ms_(88.57%)_Space_35.9_MB_(87.62%)

import java.util.LinkedList
import java.util.Queue

class MyStack() {
    private val queue1: Queue = LinkedList()
    private val queue2: Queue = LinkedList()

    fun push(x: Int) {
        queue1.add(x)
    }

    fun pop(): Int {
        while (queue1.size > 1) {
            queue2.add(queue1.remove())
        }
        val top = queue1.remove()
        queue1.clear()
        queue1.addAll(queue2)
        queue2.clear()
        return top
    }

    fun top(): Int {
        while (queue1.size > 1) {
            queue2.add(queue1.remove())
        }
        val top = queue1.remove()
        queue2.add(top)
        queue1.clear()
        queue1.addAll(queue2)
        queue2.clear()
        return top
    }

    fun empty(): Boolean {
        return queue1.isEmpty()
    }
}

/*
 * Your MyStack object will be instantiated and called as such:
 * var obj = MyStack()
 * obj.push(x)
 * var param_2 = obj.pop()
 * var param_3 = obj.top()
 * var param_4 = obj.empty()
 */




© 2015 - 2025 Weber Informatics LLC | Privacy Policy