이중 연결리스트를 구현하기위한 파이썬 클래스 생성. DLL 자체에 대한 별도의 클래스와 목록에 대한 클래스가 있습니다. 이 내 클래스는 DLL 노드를위한 것입니다 클래스 DLLNode :파이썬 이중 연결리스트 - insertAfter 노드
def __init__(self,element,nextnode=None,prevnode=None,):
self._element = element
self._next = nextnode
self._prev = prevnode
내가 선두로부터의 X 후 노드 Y를 삽입 insertAfter(self,x,y)
라는 방법이있다. 이 어느 : 내가 그러나이 기능을 실행하면 내가 함수 나 자신을 죽일 때
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
이 함수 영원히 루프, 오류가 말을 나던 4 마지막 줄 iterator._next = n
로 다시 말한다 이유 메신저 혼란 아무것도 . 크게 당신이 iterator
값을 변경하지 않습니다
while iterator._next is not None:
then
지점에서 루프에서 도움 :
감사합니다. – DecafOyster208