class Doubly_Linked_List:
#O(1)
def __init__(self,value=None):
if value==None:
self.head = {'value':None,'prev':None,'next':None}
self.tail = None
self.length = 0
else:
self.head = {'value':value,'prev':None,'next':None}
self.tail = self.head
self.length = 1
#O(1)
def __repr__(self):
return f'head:{self.head}\ntail:{self.tail}\nlength:{self.length}'
def _navigate_to_pointer(self,index):
pointer_before_insertion = self.head
for i in range(index-1):
pointer_before_insertion = pointer_before_insertion['next']
return pointer_before_insertion
#O(1)
def _make_node(self,value):
return {'value':value,'prev':None,'next':None}
def append(self,value):
if self.length==0:
self.head = self._make_node(value)
self.tail = self.head
self.length+=1
return None
new_last_node = self._make_node(value)
new_last_node['prev'] = self.tail
self.tail['next'] = new_last_node
self.tail = new_last_node
self.length+=1
#test
a=Doubly_Linked_List()
for i in range(2):
a.append(i)
print(a)
print(a.tail)
print(a.head)
I am trying to implement doubly linked list using dictionary data type in python 3.8. I am trying to test my code but I can't see the full output.