Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. class Node:
  2. def __init__(self, data):
  3. self.head = None
  4. self.data = data
  5. self.tail = None
  6.  
  7.  
  8. class DoublyLinkedList:
  9. def __init__(self):
  10. self.head = None
  11.  
  12. def insertNode(self, data):
  13. new_node = Node(data)
  14. if self.head == None:
  15. self.head = new_node
  16. else:
  17. last = self.head
  18. tail = ''
  19. while tail is not None:
  20. if last.tail == None:
  21. tail = None
  22. else:
  23. last = last.tail
  24.  
  25. new_node.head = last
  26. last.tail = new_node
  27.  
  28. def traverse_data(self):
  29. if self.head == None:
  30. print('No nodes available to traverse')
  31.  
  32. else:
  33. last = self.head
  34. tail = ''
  35. while tail is not None:
  36. if last.tail == None:
  37. print(last.data)
  38. tail = None
  39. else:
  40. print(last.data)
  41. last = last.tail
  42.  
  43. def delete_data(self, data):
  44. if self.head == None:
  45. print('ERROR: No data is present for deletion')
  46. else:
  47. last = self.head
  48. data_present = True
  49.  
  50. while last.data is not data:
  51. if last.tail is None:
  52. print('Your data is not yet present')
  53. data_present = False
  54. break
  55. last = last.tail
  56. if data_present:
  57. if last.tail is not None:
  58. last.head.tail = last.tail
  59. else:
  60. last.head.tail = None
  61.  
  62. del last
  63. return
  64.  
  65.  
  66. dbll = DoublyLinkedList()
  67.  
  68. dbll.insertNode('a')
  69. dbll.insertNode('b')
  70. dbll.insertNode('c')
  71. dbll.insertNode('d')
  72.  
  73. dbll.insertNode('e')
  74. dbll.insertNode('f')
  75. dbll.insertNode('g')
  76.  
  77. dbll.delete_data('g')
  78.  
  79. dbll.insertNode('h')
  80. dbll.insertNode('i')
  81. dbll.insertNode('j')
  82. dbll.insertNode('k')
  83. dbll.insertNode('l')
  84.  
  85. dbll.traverse_data()
  86.  
  87.  
  88. '''
  89. OUTPUT:-
  90. =======
  91. a
  92. b
  93. c
  94. d
  95. e
  96. f
  97. h
  98. i
  99. j
  100. k
  101. l
  102. '''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement