Exemple #1
0
class Stack:
    def __init__(self):
        self.items = LinkedList()

    def push(self, value):
        """
        Adds the value to the back of the LinkedList
        :param value: the value to be added
        """
        self.items.add(value)

    def pop(self):
        """
        Removes the value at the tail
        :return: the value of the item removed
        """
        if self.items.tail is None:
            return None
        value = self.items.tail.value
        self.items.remove(value)
        return value

    def peek(self):
        """
        :returns: the value of the item at the tail
        """
        if not self.items.tail:
            return None
        return self.items.tail.value
Exemple #2
0
 def init_set(self, size: int) -> None:
     self.size: int = size
     self.representative: List[int] = []
     self.linked_lists: List[LinkedList] = []
     for e in range(size):
         self.representative.append(e)
         l = LinkedList(e)
         self.linked_lists.append(l)
Exemple #3
0
 def makeset(self, element: int) -> None:
     self.representative[element] = element
     self.linked_lists[element] = LinkedList(element)
 def setUp(self) -> None:
     self.linked_list = LinkedList()
class TestLinkedList(unittest.TestCase):
    def setUp(self) -> None:
        self.linked_list = LinkedList()

    def tearDown(self) -> None:
        del self.linked_list

    def test_list(self):
        self.assertEqual(self.linked_list.is_empty(), True)
        self.linked_list.append(5)
        self.assertEqual(self.linked_list.is_empty(), False)
        self.assertEqual(self.linked_list.head.value, 5)

        self.linked_list.append(10)
        self.linked_list.append(15)

        self.linked_list.delete_with_value(10)
        self.assertEqual(self.linked_list.head.next_node.value, 15)

        self.linked_list.prepend(2)
        self.assertEqual(self.linked_list.head.value, 2)

        self.linked_list.delete_with_value(2)
        self.assertEqual(self.linked_list.head.value, 5)
            length += 1
            p = p.next
        result = [None] * k
        per_size = length // k
        padding = length % k

        p = root
        i = 0
        while p:
            result[i] = p
            i += 1
            size = per_size + 1 if padding > 0 else per_size
            prev = None
            while size > 0:
                prev = p
                p = p.next
                size -= 1
            padding -= 1
            prev.next = None
        return result


if __name__ == '__main__':
    s = Solution()
    print(s.splitListToParts(root=LinkedList([1, 2, 3]).node,
                             k=5))  # [[1],[2],[3],[],[]]
    print(
        s.splitListToParts(root=LinkedList([1, 2, 3, 4, 5, 6, 7, 8, 9,
                                            10]).node,
                           k=3))  # [[1, 2, 3, 4], [5, 6, 7], [8, 9, 10]]
from data_structure.linked_list import LinkedList, Element


# solution to the problem
def main(listOne, listTwo):
    l1 = listOne.print_list()
    l2 = listTwo.print_list()
    for i in l1:
        if i in l2:
            return i

    return None


listOne = LinkedList()
listTwo = LinkedList()

e1 = Element(99)
e2 = Element(1)
e3 = Element(8)
e4 = Element(10)

m1 = Element(3)
m2 = Element(7)
m3 = Element(8)
m4 = Element(10)

listOne.append(e1)
listOne.append(e2)
listOne.append(e3)
Exemple #8
0
 def __init__(self):
     self.items = LinkedList()