Sobes.tech
Junior — Middle

Байланыштуу тизмени колдонуп стектин маалымат түзүмүн кантип куруу керек?

sobes.tech AI

AIден жооп

Төшкөңдөйдү негизделген байланышкан тизмеге негизделип ишке ашырса болот, анда ар бир элемент (түйүн) маалыматтарды камтыйт жана кийинки элементке шилтеме бар. Төшкөңдөйдүн жогорку элементи — тизмектин башы. Негизги операциялар:

  • push — жаңы түйүндү тизмектин башына кошуу;
  • pop — тизмектин башындагы түйүндү алып салуу жана анын маанисин кайтаруу;
  • peek — баштын маанисин көрүү, алып салбастан.

Котлинде мисал:

class Node<T>(val data: T, var next: Node<T>? = null)

class Stack<T> {
    private var head: Node<T>? = null

    fun push(value: T) {
        val newNode = Node(value, head)
        head = newNode
    }

    fun pop(): T? {
        val value = head?.data
        head = head?.next
        return value
    }

    fun peek(): T? = head?.data

    fun isEmpty() = head == null
}

Бул ыкма стек операцияларын O(1) убакытта камсыз кылат жана динамикалык кеңейтүүгө мүмкүндүк берет, чоң массив бөлүүнүн кереги жок.