Sobes.tech
Junior — Middle

Bog'langan ro'yxat orqali amalga oshirilgan stekka yangi element qo'shilganda qanday jarayonlar yuz beradi?

sobes.tech AI

AIdan javob

Yigʻishni (stack) yangi element qoʻshishda, bogʻlangan roʻyxat yordamida amalga oshirilganda, quyidagilar boʻladi:

  1. Yangi tugun (roʻyxat element) yaratiladi va unga qoʻshiladigan qiymat joylashtiriladi.
  2. Yangi tugunning koʻrsatgichi hozirgi yigining yuqori elementiga (yaʼni, bogʻlangan roʻyxatning boshiga) oʻrnatiladi.
  3. Bogʻlangan roʻyxatning boshqichligi yangilanadi va endi u yangi tugunga koʻrsatadi — u yangi yuqori elementga aylantiriladi.

Shu tarzda, push operatsiyasi oʻz vaqtida O(1) bajariladi, chunki roʻyxat boʻylab yurishga ehtiyoj yoʻq.

Kotlin misoli:

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

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

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

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