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) убакытта камсыз кылат жана динамикалык кеңейтүүгө мүмкүндүк берет, чоң массив бөлүүнүн кереги жок.