From 321b1425e34d850cca84ca94ce64dae3f52c3d9a Mon Sep 17 00:00:00 2001 From: Lakshmikanth2001 <52835045+Lakshmikanth2001@users.noreply.github.com> Date: Sun, 31 May 2020 15:07:45 +0530 Subject: [PATCH] data_structures/linked_list: Add __len__() function and tests (#2047) * Update __init__.py please add a function to get length of linked list * Update __init__.py * Update doubly_linked_list.py all size function lo doubly linked list class * prime number _better method * comments * Updated init.py 2 made it more pythonic * updated length function * commnet in linked_list construtor * Update data_structures/linked_list/__init__.py accepecting changes Co-authored-by: Christian Clauss * Update data_structures/linked_list/__init__.py Co-authored-by: Christian Clauss * Update __init__.py * Revert changes to doubly_linked_list.py * Revert changes to prime_check.py Co-authored-by: Christian Clauss --- data_structures/linked_list/__init__.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/data_structures/linked_list/__init__.py b/data_structures/linked_list/__init__.py index a050adba4..3ddfea5c5 100644 --- a/data_structures/linked_list/__init__.py +++ b/data_structures/linked_list/__init__.py @@ -7,9 +7,11 @@ class Node: class LinkedList: def __init__(self): self.head = None + self.size = 0 def add(self, item): self.head = Node(item, self.head) + self.size += 1 def remove(self): if self.is_empty(): @@ -17,7 +19,28 @@ class LinkedList: else: item = self.head.item self.head = self.head.next + self.size -= 1 return item def is_empty(self): return self.head is None + + def __len__(self): + """ + >>> linked_list = LinkedList() + >>> len(linked_list) + 0 + >>> linked_list.add("a") + >>> len(linked_list) + 1 + >>> linked_list.add("b") + >>> len(linked_list) + 2 + >>> _ = linked_list.remove() + >>> len(linked_list) + 1 + >>> _ = linked_list.remove() + >>> len(linked_list) + 0 + """ + return self.size