Sobes.tech
Junior — Middle

Bog'langan ro'yxat yordamida stek ma'lumotlar tuzilmasini qanday qurish mumkin?

sobes.tech AI

AIdan javob

Stackni bog'lash uchun bog'langan ro'yxatdan foydalanish mumkin, bunda har bir element (tugun) ma'lumotlarni va keyingi elementga havolani o'z ichiga oladi. Stackning yuqori elementi ro'yxatning boshidir. Asosiy operatsiyalar:

  • push — yangi tugunni ro'yxatning boshiga qo'shish;
  • pop — ro'yxatning boshidagi tugunni olib tashlash va uning qiymatini qaytarish;
  • peek — boshdagi qiymatni ko'rish, olib tashlamasdan.

Kotlinda misol:

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
}

Bu yondashuv, O(1) vaqtda stack operatsiyalarini ta'minlaydi va dinamik kengayishni ta'minlaydi, katta massiv ajratishga ehtiyoj qolmaydi.