def insert(self, n, value): if n > self.count: raise IndexError('Index out of range') node = self.get_node(n) newNode = Node(value, node.prev, node) node.prev.next = newNode node.prev = newNode self.count += 1
def prepend(self, value): newNode = Node(value, self.head, self.head.next) self.head.next.prev = newNode self.head.next = newNode self.count += 1
def append(self, value): newNode = Node(value, self.head.prev, self.head) self.head.prev.next = newNode self.head.prev = newNode self.count += 1
def clear(self): self.head = Node() self.head.prev = self.head self.head.next = self.head self.count = 0