예제 #1
0
def sort_repeat(List, node):
    # 如果node.value不包含在List里, append到List后面
    n = List.head.next
    v2 = node.value
    while n != None:
        v1 = n.value
        if v1 == v2:
            return List
            pass
        n = n.next
        pass

    linkedlist1.append(List, v2)
    return List
예제 #2
0
def test_reverse():
    List = linkedlist1.LinkedList()
    linkedlist1.append(List, '1')
    linkedlist1.append(List, '2')
    linkedlist1.append(List, '3')
    linkedlist1.append(List, '4')

    rList = linkedlist1.reverse(List)
예제 #3
0
def test_delete_last_n():
    List = linkedlist1.LinkedList()
    linkedlist1.append(List, '1')
    linkedlist1.append(List, '3')
    linkedlist1.append(List, '4')

    linkedlist1.delete_last_n(List, 2)
    value = linkedlist1.kth_node(List, 2).value
    s = 'test_delete_last_n failed ({})'.format(value)
    assert str(4) == str(value), s
예제 #4
0
def test_insert_last_n():
    List = linkedlist1.LinkedList()
    linkedlist1.append(List, '1')
    linkedlist1.append(List, '3')
    linkedlist1.append(List, '4')

    linkedlist1.insert_last_n(List, 2, '2')
    value = linkedlist1.kth_node(List, 2).value
    s = 'test_insert_after failed ({})'.format(value)
    assert str(2) == str(value), s
예제 #5
0
def test_is_circle():
    List = linkedlist1.LinkedList()
    linkedlist1.append(List, '1')
    linkedlist1.append(List, '2')
    linkedlist1.append(List, '3')

    value = linkedlist1.is_circle(List)
    s = 'test_has_x1 failed ({})'.format(value)
    assert str(False) == str(value), s

    node = linkedlist1.last_node(List)
    node.next = List.head.next
    value = linkedlist1.is_circle(List)
    s = 'test_has_x1 failed ({})'.format(value)
    assert str(True) == str(value), s
예제 #6
0
def test_length():
    List = linkedlist1.LinkedList()
    linkedlist1.append(List, '1')
    a = linkedlist1.length(List)
    s = 'test_length1 failed ({})'.format(a)
    assert str(1) == str(a), s

    linkedlist1.append(List, '2')
    a = linkedlist1.length(List)
    s = 'test_length2 failed ({})'.format(a)
    assert str(2) == str(a), s

    linkedlist1.append(List, '3')
    a = linkedlist1.length(List)
    s = 'test_length3 failed ({})'.format(a)
    assert str(3) == str(a), s
예제 #7
0
def test_last_node():
    List = linkedlist1.LinkedList()
    linkedlist1.append(List, '1')
    value = linkedlist1.last_node(List).value
    s = 'test_last_node1 failed ({})'.format(value)
    assert str(1) == str(value), s

    linkedlist1.append(List, '2')
    value = linkedlist1.last_node(List).value
    s = 'test_last_node2 failed ({})'.format(value)
    assert str(2) == str(value), s

    linkedlist1.append(List, '3')
    value = linkedlist1.last_node(List).value
    s = 'test_last_node3 failed ({})'.format(value)
    assert str(3) == str(value), s
예제 #8
0
def add_number(a, b):
    # 8
    # 给两个非空且长度不一定相同的单链表, 表示两个非负整数
    # 数字以相反的顺序存储(个位在前), 每个节点都包含一个 value, 将两个 value 相加并返回链表
    l = LinkedList()
    n1 = a.head.next
    n2 = b.head.next
    jinwei = False
    while n1 != None or n2 != None:
        v1 = 0
        v2 = 0
        if n1 != None:
            v1 = n1.value
            pass

        if n2 != None:
            v2 = n2.value
            pass

        v = (v1 + v2)

        if jinwei:
            v += 1
            jinwei = False
            pass

        if v >= 10:
            jinwei = True
            pass

        v = v % 10

        n = linkedlist1.append(l, v)

        n1 = n1.next
        n2 = n2.next
        pass

    return l
예제 #9
0
def test_has_x():
    List = linkedlist1.LinkedList()
    linkedlist1.append(List, '1')
    linkedlist1.append(List, '2')
    linkedlist1.append(List, '3')

    value = linkedlist1.has_x(List, '1')
    s = 'test_has_x1 failed ({})'.format(value)
    assert str(True) == str(value), s

    value = linkedlist1.has_x(List, '2')
    s = 'test_has_x2 failed ({})'.format(value)
    assert str(True) == str(value), s

    value = linkedlist1.has_x(List, '4')
    s = 'test_has_x3 failed ({})'.format(value)
    assert str(False) == str(value), s
예제 #10
0
def test_n_last():
    List = linkedlist1.LinkedList()
    linkedlist1.append(List, '1')
    linkedlist1.append(List, '2')
    linkedlist1.append(List, '3')

    value = linkedlist1.n_last(List, 1).value
    s = 'test_n_last1 failed ({})'.format(value)
    assert str(3) == str(value), s

    value = linkedlist1.n_last(List, 2).value
    s = 'test_n_last2 failed ({})'.format(value)
    assert str(2) == str(value), s

    value = linkedlist1.n_last(List, 3).value
    s = 'test_n_last3 failed ({})'.format(value)
    assert str(1) == str(value), s
예제 #11
0
def test_middle():
    List = linkedlist1.LinkedList()
    linkedlist1.append(List, '1')

    value = linkedlist1.middle(List).value
    s = 'test_middle1 failed ({})'.format(value)
    assert str(1) == str(value), s

    linkedlist1.append(List, '2')
    value = linkedlist1.middle(List)
    s = 'test_middle2 failed ({})'.format(value)
    assert str(None) == str(value), s

    linkedlist1.append(List, '3')
    value = linkedlist1.middle(List).value
    s = 'test_middle3 failed ({})'.format(value)
    assert str(2) == str(value), s
예제 #12
0
def test_joseph_list():
    List = linkedlist1.LinkedList()
    linkedlist1.append(List, '1')
    linkedlist1.append(List, '2')
    linkedlist1.append(List, '3')
    linkedlist1.append(List, '4')
    linkedlist1.append(List, '5')
    linkedlist1.append(List, '6')
    linkedlist1.append(List, '7')
    linkedlist1.append(List, '8')
    linkedlist1.append(List, '9')

    lNode = linkedlist1.last_node(List)
    lNode.next = List.head
    ######创建环链表
    l = linkedlist1.joseph_list(List, 9)
예제 #13
0
def test_merge_list():
    List1 = linkedlist1.LinkedList()
    linkedlist1.append(List1, '1')
    linkedlist1.append(List1, '3')
    linkedlist1.append(List1, '5')

    List2 = linkedlist1.LinkedList()
    linkedlist1.append(List2, '2')
    linkedlist1.append(List2, '4')
    linkedlist1.append(List2, '6')

    List3 = linkedlist1.merge_list(List1, List2)
예제 #14
0
def test_power_copye():
    List = linkedlist1.LinkedList()
    linkedlist1.append(List, '1')
    linkedlist1.append(List, '2')
    linkedlist1.append(List, '3')
    linkedlist1.append(List, '4')
    linkedlist1.append(List, '5')
    linkedlist1.append(List, '6')
    linkedlist1.append(List, '7')
    linkedlist1.append(List, '8')

    node8 = linkedlist1.last_node(List)
    node5 = linkedlist1.kth_node(List, 5)

    node8.next = node5
    #             6
    #           7    5
    # 1  2  3   4  8
    cList = linkedlist1.power_copy(List)

    value = linkedlist1.kth_node(List, 11).value
    s = 'test_has_x1 failed ({})'.format(value)
    assert str(7) == str(value), s
예제 #15
0
def test_copy():
    List = linkedlist1.LinkedList()
    linkedlist1.append(List, '1')
    linkedlist1.append(List, '2')
    linkedlist1.append(List, '3')
예제 #16
0
def test_is_palindrome():
    List = linkedlist1.LinkedList()
    linkedlist1.append(List, '1')
    linkedlist1.append(List, '2')
    linkedlist1.append(List, '3')
    linkedlist1.append(List, '2')
    linkedlist1.append(List, '1')

    value = linkedlist1.is_palindrome(List)
    s = 'test_has_x1 failed ({})'.format(value)
    assert str(True) == str(value), s

    linkedlist1.append(List, '3')
    value = linkedlist1.is_palindrome(List)
    s = 'test_has_x1 failed ({})'.format(value)
    assert str(False) == str(value), s

    linkedlist1.append(List, '4')
    value = linkedlist1.is_palindrome(List)
    s = 'test_has_x1 failed ({})'.format(value)
    assert str(False) == str(value), s