Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Node:
- def __init__(self, data=None, prev=None, next=None):
- self.data = data
- self.prev = prev
- self.next = next
- class DLL:
- def __init__(self):
- self.header = Node()
- self.trailer = Node()
- self.header.next = self.trailer
- self.trailer.prev = self.header
- self.current = self.header
- self.size = 0
- def __str__(self):
- print_str = ''
- value = self.current
- while value != None:
- print_str += str(value.data) + ' '
- value = value.next
- return print_str
- def __len__(self):
- return self.size
- def is_empty(self):
- return self.size == 0
- def insert(self, value):
- new_node = Node(value)
- if self.current == self.header:
- self.current = self.current.next
- new_node.prev = self.current.prev
- new_node.next = self.current
- self.current.prev = new_node
- self.current = new_node
- self.size += 1
- return self.current
- def remove(self):
- if self.is_empty():
- return None
- else:
- self.current.next = self.current
- self.current.prev = None
- self.size -= 1
- def get_value(self):
- if self.is_empty():
- return None
- return self.current.data
- def move_to_next(self):
- if self.current == self.trailer:
- return None
- else:
- self.current = self.current.next
- return self.current
- def move_to_prev(self):
- if self.current == self.header:
- return None
- else:
- self.current = self.current.prev
- return self.current
- def move_to_pos(self, position):
- if self.current == self.header == self.trailer:
- return None
- def remove_all(self, value):
- self.size = 0
- self.header = self.current
- return self.size
- def reverse(self):
- pass
- def sort():
- pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement