Beispiel #1
0
    def test_contains(self):
        l = SingleLinkedList()
        self.assertFalse(l.contains(0))
        self.assertFalse(l.contains(1))
        self.assertFalse(l.contains(None))

        l = SingleLinkedList([1, 2, 3])
        self.assertTrue(l.contains(1))
        self.assertTrue(l.contains(2))
        self.assertTrue(l.contains(2.0))
        self.assertTrue(l.contains(3))
        self.assertFalse(l.contains(4))
        self.assertFalse(l.contains(-1))
        self.assertFalse(l.contains(None))
        self.assertFalse(l.contains({'some': 'datatype'}))
        self.assertFalse(l.contains(2.01))
Beispiel #2
0
class SingleLinkedSet:
    """ Data structure for storing only unique values. 
    
    Not thread-safe.
    """
    def __init__(self, iterable=None):
        self._container = SingleLinkedList()
        if iterable:
            for item in iterable:
                self.add(item)
        
    def add(self, value):
        if not self._container.contains(value):
            self._container.append(value)

    def contains(self, value):
        return self._container.contains(value)

    def __contains__(self, value):
        return self.contains(value)