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.