Je crée une classe python pour implémenter une liste doublement chaînée. J'ai une classe séparée pour le noeud DLL lui-même et une classe pour la liste. Ce est ma classe pour les noeuds DLL: classe DLLNode:python liste doublement chaînée - insertAfter noeud
def __init__(self,element,nextnode=None,prevnode=None,):
self._element = element
self._next = nextnode
self._prev = prevnode
J'ai une méthode appelée insertAfter(self,x,y)
qui insère le noeud y après la première x occurence. Ce qui est ceci:
if self.size != 0:
n = DLLNode(y)
if self.head._element == x:
n._next = self.head._next
self.head._next._prev = n
n._prev = self.head
self.head._next = n
self.size += 1
elif self.tail._element == x:
self.tail._next = n
n._prev = self.tail
n._next = None
self.tail = n
self.size += 1
else:
iterator = self.head._next
while iterator._next is not None:
if iterator._element == x:
n._next = iterator._next
iterator._next._prev = n
n._prev = iterator
iterator._next = n
self.size += 1
else:
iterator = iterator._next
quand je lance cette fonction cependant, la fonction boucle pour toujours, quand je tue la fonction moi-même, l'erreur renvoie à la 4ème dernière ligne iterator._next = n
il ne dit pas autre chose qui est pourquoi im confus . vous serions reconnaissants de toute aide :)
oh ça a du sens, merci! – DecafOyster208