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