è una modifica della linked list dove ogni elemento è collegato, con due puntatori sia al successivo che al precedente.
Implementazione in Python
class Nodo:
def __init__(self, value = None, next = None, pre):
self.key = key
self.next = next
self.prev = prev
Operazioni
Creazione
def Crea(lista):
if lista == []:
return None
p = Nodo(lista[0])
q = p
for i in lista[1:]:
nuovo = Nodo(i)
q.next = nuovo
nuovo.prev = q
q = nuovo
return p
Rimozione di un nodo intermedio p
(dopo averlo raggiunto)
p.prev.next = p.next
p.next.prev = p.prev