Lista ddoppja maqmugħa tagħti kull nodu żewg pointer — next u prev — saħħa tista' taqsam fit-tnejn id-direzzjonijiet u tħassar nodu f'O(1) meta jkollok referenza għalieh (ma tistiex bżonn imxi mil-kap biex issib il-predeċessur).
Lista ddoppja maqmugħa tagħti kull nodu żewg pointer — next u prev — saħħa tista' taqsam fit-tnejn id-direzzjonijiet u tħassar nodu f'O(1) meta jkollok referenza għalieh (ma tistiex bżonn imxi mil-kap biex issib il-predeċessur).
null <- [10] <-> [20] <-> [30] -> null
prev/next links in BOTH directions
class Node:
def __init__(self, val):
self.val, self.prev, self.next = val, None, None
def remove(node): # O(1) — no traversal needed
if node.prev: node.prev.next = node.next
if node.next: node.next.prev = node.prev
F'lista singla maqmugħa, ħassar nodu jeħtieġ li tsilef il-predeċessur tiegħu l-ewwel → O(n).
| Aspett | Singla | Doppja |
|---|---|---|
| Pointer għal kull nodu | 1 (next) | 2 (next, prev) |
| Aqsam lil quddiem | le | iva |
| Ħassar nodu magħruf | O(n) | O(1) |
| Overhead ta' memorja | aktar baxxa | aktar għolija |
L-O(1) splice-out ta' nodu magħruf hu l-proprjetà ewlenija li tagħmel listi ddoppja maqmugħa li jkunu sħab ta' hash map f'cache LRU.
Il-pointer addizzjonali prev jibdel il-memorja għall-flessibilità tal-moviment bidirezzjonali u l-ħassara fi żmien kostanti.
Librerija ta' mistoqsijiet ta' intervisti tal-IT b'tweġibiet dettaljati — minn Junior sa Senior.
Iddona