Python/data_structures/linked_list/__init__.py

47 lines
998 B
Python
Raw Normal View History

2018-10-19 12:48:28 +00:00
class Node:
def __init__(self, item, next):
self.item = item
self.next = next
2019-10-05 05:14:13 +00:00
2018-10-19 12:48:28 +00:00
class LinkedList:
def __init__(self):
self.head = None
self.size = 0
2018-10-19 12:48:28 +00:00
def add(self, item):
self.head = Node(item, self.head)
self.size += 1
2018-10-19 12:48:28 +00:00
def remove(self):
if self.is_empty():
return None
else:
item = self.head.item
self.head = self.head.next
self.size -= 1
2018-10-19 12:48:28 +00:00
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