Sobes.tech
Junior — Middle

რა არის დაკავშირებული სიის ბოლოს ელემენტის დამატების ოპერაციის დროითი სირთულე?

sobes.tech AI

პასუხი AI-სგან

დაკავშირებული სიის ბოლო ელემენტის დამატების ოპერაციის დროის სირთულე დამოკიდებულია იმაზე, აქვს თუ არა სიის ბოლო ელემენტზე მიმთითებელი.

  • თუ არსებობს მიმთითებელი (tail), დამატება ხდება O(1) დროს, რადგან შეიძლება დაუყოვნებლივ დაამატოთ ახალი ელემენტი tail-ის შემდეგ.
  • თუ მიმთითებელი tail-ზე არ არის, საჭიროა მთელი სია გავიაროთ, რათა მივაგნოთ ბოლო ელემენტი, და მაშინ სირთულე იქნება O(n), სადაც n — ელემენტების რაოდენობა სიის.

მაგალითი tail-ის მიმთითებლით:

class LinkedList {
    Node head;
    Node tail;

    void addLast(int value) {
        Node newNode = new Node(value);
        if (head == null) {
            head = newNode;
            tail = newNode;
        } else {
            tail.next = newNode;
            tail = newNode;
        }
    }
}