Ejemplo n.º 1
0
    def test_set_next(self):
        next_node = Node(data='two', next_node=None)
        node = Node(data='one', next_node=next_node)
        new_node = Node(data='three', next_node=None)

        node.next_node = new_node
        assert node.next_node == new_node
Ejemplo n.º 2
0
 def push(self, value):
     if self.head == None:
         self.head = Node(value)
     else:
         new_node = Node(value)
         new_node.next_node = self.head
         self.head = new_node
Ejemplo n.º 3
0
    def push(self, data):

        node = Node(data)
        if self.__head is None:
            self.__head = node
        else:
            node.next_node = self.__head
            self.__head = node
        self.__count += 1
Ejemplo n.º 4
0
 def push(self, value):
     if self.head is None:
         self.head = Node(value)
         self.size += 1
     else:
         new_node = Node(value)
         new_node.next_node = self.head
         self.head = new_node
         self.size += 1
Ejemplo n.º 5
0
 def insert(self, value):
     """Insert a value onto the double linked list."""
     try:
         for i in value:
             new_node_value = Node(i)
             if self.head is None:
                 self.head = new_node_value
                 self.length += 1
             else:
                 new_node_value.next_node = self.head
                 new_node_value.next_node.prev = new_node_value
                 self.head = new_node_value
                 self.length += 1
     except TypeError:
         new_node_value = Node(value)
         if self.head is None:
             self.head = new_node_value
             self.length += 1
         else:
             new_node_value.next_node = self.head
             new_node_value.next_node.prev = new_node_value
             self.head = new_node_value
             self.length += 1
def remove_dupes(ll):
    output = set()
    curr = ll.head
    prev = Node(data=None, next_node=ll)
    while curr:
        # If not seen, add to set and continue iteration
        if curr.data not in output:
            output.add(curr.data)
            prev = curr
            curr = curr.next_node
        else:
            # Deletes by hopping over current node and continue iteration
            prev.next_node = curr.next_node
            curr.next_node = None
            curr = prev.next_node
    return ll
Ejemplo n.º 7
0
 def test_node_link_node_next_node(self):
     n1 = Node(3)
     n2 = Node(5)
     n1.next_node = n2
     self.assertEqual(n2, n1.next_node)
     self.assertEqual(5, n1.next_node.value)