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;
        }
    }
}