탐색의 두 번째 연산은 리스트의 마지막 데이터부터 반대 방향으로 순회하면서 탐색하는 search_backward() 메서드입니다.
코드 4-8
def search_backward(self, target):
cur = self.tail.prev
while cur is not self.head:
if cur.data == target:
return cur
cur = cur.prev
return None
마지막으로 삭제 연산을 알아보겠습니다. 리스트의 첫 번째 데이터 노드를 삭제하는 delete_first() 메서드를 살펴보죠.
코드 4-9
def delete_first(self):
if self.empty():
return
self.head.next = self.head.next.next
self.head.next.prev = self.head
self.d_size -= 1