How to create a custom stack class using a list in Kotlin

1 Answer

0 votes
class Stack<T> {
    private val elements = mutableListOf<T>()

    fun push(item: T) = elements.add(item)
    fun pop(): T? = if (elements.isNotEmpty()) elements.removeAt(elements.size - 1) else null
    fun peek(): T? = elements.lastOrNull()
    fun isEmpty() = elements.isEmpty()
    fun size() = elements.size

    override fun toString() = elements.toString()
}

fun main() {
    val stack = Stack<Int>()
    
    stack.push(10)
    stack.push(20)
    stack.push(30)
    stack.push(40)

    println("Top element: ${stack.peek()}") 
    println("Popped element: ${stack.pop()}") 
    println("Stack after pop: $stack")
}

 
  
/*
run:

Top element: 40
Popped element: 40
Stack after pop: [10, 20, 30]

*/

 



answered Aug 16, 2025 by avibootz
...