Junior — Middle
Ποια διαδικασία συμβαίνει όταν προστίθεται ένα νέο στοιχείο σε μια στοίβα που υλοποιείται μέσω συνδεδεμένης λίστας;
sobes.tech AI
Απάντηση από AI
Κατά την προσθήκη ενός νέου στοιχείου στην στοίβα, η οποία υλοποιείται μέσω συνδεδεμένης λίστας, συμβαίνει το εξής:
- Δημιουργείται ένας νέος κόμβος (στοιχείο της λίστας), που περιέχει την τιμή που πρέπει να προστεθεί.
- Ο δείκτης του νέου κόμβου ορίζεται στο τρέχον ανώτερο στοιχείο της στοίβας (δηλαδή στην κεφαλή της συνδεδεμένης λίστας).
- Η κεφαλή της συνδεδεμένης λίστας ενημερώνεται και τώρα δείχνει στον νέο κόμβο — αυτός γίνεται το νέο ανώτερο στοιχείο της στοίβας.
Έτσι, η λειτουργία push εκτελείται σε σταθερό χρόνο O(1), καθώς δεν απαιτείται διάσχιση της λίστας.
Παράδειγμα σε Kotlin:
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
}
}