Exemplo n.º 1
0
    def insert(self, item_new, pos):
        """given an item and a position, this method insert an item at the position required"""

        actual_position = 0
        previous_position = None
        current = self.head
        new_node = Node(None, item_new)

        while actual_position != pos and current is not None:
            previous_position = current
            current = current.next
            actual_position += 1

        if actual_position != pos:
            raise ValueError("Invalid Position %d" % pos)

        previous_position.next = new_node
        new_node.next = current
        new_node.previous = previous_position

        if current is None:
            self.tail = new_node
        else:
            current.previous = new_node

        return self