특징

장점과 단점

사용처

예시 코드

class Stack<T> {
    private val elements: MutableList<T> = mutableListOf()

    fun push(item: T) {
        elements.add(item)
    }

    fun pop(): T? {
        if (!isEmpty()) {
            return elements.removeAt(elements.size - 1)
        }
        return null
    }

    fun isEmpty(): Boolean {
        return elements.isEmpty()
    }

    fun peek(): T? {
        if (!isEmpty()) {
            return elements[elements.size - 1]
        }
        return null
    }
}

val stack = Stack<Int>()
stack.push(1)
stack.push(2)
stack.push(3)
println(stack.pop())  // 3
println(stack.peek()) // 2