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) დროში და საშუალებას იძლევა დინამიკურად გაფართოვდეს, დიდი მასივის განაწილების საჭიროების გარეშე.