Advertisement
Guest User

Untitled

a guest
Feb 24th, 2020
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.55 KB | None | 0 0
  1.  
  2. class Node:
  3. def __init__(self, data=None, prev=None, next=None):
  4. self.data = data
  5. self.prev = prev
  6. self.next = next
  7.  
  8. class DLL:
  9.  
  10. def __init__(self):
  11. self.header = Node()
  12. self.trailer = Node()
  13. self.header.next = self.trailer
  14. self.trailer.prev = self.header
  15. self.current = self.header
  16. self.size = 0
  17.  
  18. def __str__(self):
  19. print_str = ''
  20. value = self.current
  21. while value != None:
  22. print_str += str(value.data) + ' '
  23. value = value.next
  24. return print_str
  25.  
  26. def __len__(self):
  27. return self.size
  28.  
  29. def is_empty(self):
  30. return self.size == 0
  31.  
  32. def insert(self, value):
  33. new_node = Node(value)
  34. if self.current == self.header:
  35. self.current = self.current.next
  36. new_node.prev = self.current.prev
  37. new_node.next = self.current
  38. self.current.prev = new_node
  39. self.current = new_node
  40.  
  41. self.size += 1
  42. return self.current
  43.  
  44. def remove(self):
  45. if self.is_empty():
  46. return None
  47. else:
  48. self.current.next = self.current
  49. self.current.prev = None
  50.  
  51. self.size -= 1
  52.  
  53. def get_value(self):
  54. if self.is_empty():
  55. return None
  56. return self.current.data
  57.  
  58. def move_to_next(self):
  59. if self.current == self.trailer:
  60. return None
  61. else:
  62. self.current = self.current.next
  63. return self.current
  64.  
  65. def move_to_prev(self):
  66. if self.current == self.header:
  67. return None
  68. else:
  69. self.current = self.current.prev
  70. return self.current
  71.  
  72. def move_to_pos(self, position):
  73. if self.current == self.header == self.trailer:
  74. return None
  75.  
  76. def remove_all(self, value):
  77. self.size = 0
  78. self.header = self.current
  79. return self.size
  80.  
  81. def reverse(self):
  82. pass
  83.  
  84. def sort():
  85. pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement