Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Node:
- def __init__(self, data):
- self.head = None
- self.data = data
- self.tail = None
- class DoublyLinkedList:
- def __init__(self):
- self.head = None
- def insertNode(self, data):
- new_node = Node(data)
- if self.head == None:
- self.head = new_node
- else:
- last = self.head
- tail = ''
- while tail is not None:
- if last.tail == None:
- tail = None
- else:
- last = last.tail
- new_node.head = last
- last.tail = new_node
- def traverse_data(self):
- if self.head == None:
- print('No nodes available to traverse')
- else:
- last = self.head
- tail = ''
- while tail is not None:
- if last.tail == None:
- print(last.data)
- tail = None
- else:
- print(last.data)
- last = last.tail
- def delete_data(self, data):
- if self.head == None:
- print('ERROR: No data is present for deletion')
- else:
- last = self.head
- data_present = True
- while last.data is not data:
- if last.tail is None:
- print('Your data is not yet present')
- data_present = False
- break
- last = last.tail
- if data_present:
- if last.tail is not None:
- last.head.tail = last.tail
- else:
- last.head.tail = None
- del last
- return
- dbll = DoublyLinkedList()
- dbll.insertNode('a')
- dbll.insertNode('b')
- dbll.insertNode('c')
- dbll.insertNode('d')
- dbll.insertNode('e')
- dbll.insertNode('f')
- dbll.insertNode('g')
- dbll.delete_data('g')
- dbll.insertNode('h')
- dbll.insertNode('i')
- dbll.insertNode('j')
- dbll.insertNode('k')
- dbll.insertNode('l')
- dbll.traverse_data()
- '''
- OUTPUT:-
- =======
- a
- b
- c
- d
- e
- f
- h
- i
- j
- k
- l
- '''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement