コード例 #1
0
 def test_head_tail(self):
     single_list = SingleList([])
     assert single_list.head is None
     assert single_list.tail is None
     node1 = Node(1)
     single_list.add_last(node1)
     assert single_list.head is node1
     assert single_list.tail is node1
     single_list.pop()
     assert single_list.head is None
     assert single_list.tail is None
     node2 = Node(2)
     single_list.add_first(node1)
     single_list.add_last(node2)
     assert single_list.head is node1
     assert single_list.tail is node2
     single_list = SingleList([1, 2, 3])
     assert single_list.head.val is 1
     assert single_list.tail.val is 3
     single_list += SingleList([4, 5, 6])
     assert single_list.head.val is 1
     assert single_list.tail.val is 6
     single_list += SingleList([])
     assert single_list.head.val is 1
     assert single_list.tail.val is 6
コード例 #2
0
class LinkedListStack:
    def __init__(self):
        self._data = SingleList()

    def __repr__(self):
        return 'Stack: bottom [{}] top'.format(','.join(
            map(lambda node: str(node.val), self._data)))

    def __len__(self):
        return len(self._data)

    def push(self, e):
        self._data.add_last(Node(e))

    def pop(self):
        if self.is_empty():
            raise EmptyError('Stack is empty')
        return self._data.pop().val

    def top(self):
        if self.is_empty():
            raise EmptyError('Stack is empty')
        return self._data[-1].val

    def is_empty(self):
        return len(self) == 0
コード例 #3
0
    def test_len(self):
        single_list = SingleList([])
        assert len(single_list) == 0

        single_list = SingleList([1, 2, 3])
        assert len(single_list) == 3

        single_list.add_last(Node(0))
        assert len(single_list) == 4

        single_list.pop()
        assert len(single_list) == 3
コード例 #4
0
 def test_add_last(self):
     single_list = SingleList([])
     with pytest.raises(TypeError):
         single_list.add_last(1)
     single_list.add_last(Node(1))
     assert single_list == SingleList([1])
     single_list.add_last(Node(2))
     assert single_list == SingleList([1, 2])
     assert len(single_list) == 2