Sha256: 9a56439832ff7a3ea31966f83546f81fd043f660043fbd0af550ce193f157b81

Contents?: true

Size: 1.43 KB

Versions: 104

Compression:

Stored size: 1.43 KB

Contents

class Node(object):
    def __init__(self, value):
        self._value = value
        self._next = None

    def value(self):
        return self._value

    def next(self):
        return self._next


class LinkedIterator(object):
    def __init__(self, linked_list):
        self.current = linked_list._head

    def __iter__(self):
        return self

    def __next__(self):
        if self.current is None:
            raise StopIteration
        value = self.current.value()
        self.current = self.current.next()
        return value

    def next(self):
        return self.__next__()


class LinkedList(object):
    def __init__(self, values=[]):
        self._head = None
        self._len = 0
        [self.push(v) for v in values]

    def __iter__(self):
        return LinkedIterator(self)

    def __len__(self):
        return self._len

    def head(self):
        if self._head is None:
            raise EmptyListException("The list is empty")
        return self._head

    def push(self, value):
        newNode = Node(value)
        newNode._next = self._head
        self._head = newNode
        self._len += 1

    def pop(self):
        if self._head is None:
            raise EmptyListException("The list is empty")
        self._len -= 1
        ret = self._head.value()
        self._head = self._head.next()
        return ret

    def reversed(self):
        return LinkedList(self)


class EmptyListException(Exception):
    pass

Version data entries

104 entries across 104 versions & 1 rubygems

Version Path
trackler-2.2.1.119 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.118 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.117 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.116 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.115 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.114 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.113 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.111 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.110 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.109 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.108 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.107 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.106 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.105 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.104 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.103 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.102 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.101 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.100 tracks/python/exercises/simple-linked-list/example.py
trackler-2.2.1.99 tracks/python/exercises/simple-linked-list/example.py