Esempio n. 1
0
def partition_list(list, number):
    greater_than_number_list = L.LinkedList()
    lesser_than_number_list = L.LinkedList()
    current = list.head
    while current is not None:
        if current.data > number:
            greater_than_number_list.add(current.data)
        else:
            lesser_than_number_list.add(current.data)
        current = current.next
    lesser_than_number_list_tail = lesser_than_number_list.head
    while lesser_than_number_list_tail.next is not None:
        lesser_than_number_list_tail = lesser_than_number_list_tail.next
    lesser_than_number_list_tail.next = greater_than_number_list.head
    return lesser_than_number_list
Esempio n. 2
0
def test_search_fail():
    linked_list = LinkedList()
    abc = a, b, c = list('abc')
    for i in abc:
        linked_list.insert(i)
    with pytest.raises(FileNotFoundError):
        linked_list.search('d')
Esempio n. 3
0
def test_iterate():
    linked_list = LinkedList()
    for i in 'abc':
        linked_list.insert(i)
    j = -1
    for i in linked_list:
        j += 1
        assert i == 'abc'[::-1][j]
Esempio n. 4
0
def test_previous():
    linked_list = LinkedList()
    abc = a, b, c = list('abc')
    for i in abc:
        linked_list.insert(i)
    assert linked_list.previous(a).item is b
    assert linked_list.previous(b).item is c
    assert linked_list.previous(c).item is None
Esempio n. 5
0
def test_search():
    linked_list = LinkedList()
    abc = a, b, c = list('abc')
    for i in abc:
        linked_list.insert(i)
    assert linked_list.search(a).item is a
    assert linked_list.search(b).item is b
    assert linked_list.search(c).item is c
Esempio n. 6
0
def test_insert():
    linked_list = LinkedList()
    a, b = list('ab')
    assert linked_list.head.item is None
    assert linked_list.tail.item is None
    linked_list.insert(a)
    assert linked_list.head.item is a
    assert linked_list.head.next.item is None
    assert linked_list.tail.item is a
    linked_list.insert(b)
    assert linked_list.head.item is b
    assert linked_list.head.next.item is a
    assert linked_list.tail.item is a
Esempio n. 7
0
def test_delete():
    linked_list = LinkedList()
    abc = a, b, c = list('abc')
    for i in abc:
        linked_list.insert(i)
    linked_list.delete(b)
    assert linked_list.head.item is c
    assert linked_list.head.next.item is a
    assert linked_list.tail.item is a
    linked_list.delete(a)
    assert linked_list.head.item is c
    assert linked_list.head.next.item is None
    assert linked_list.tail.item is c
    linked_list.delete(c)
    assert linked_list.head.item is None
    assert linked_list.tail.item is None
Esempio n. 8
0
from datastructures import LinkedList as L


def partition_list(list, number):
    greater_than_number_list = L.LinkedList()
    lesser_than_number_list = L.LinkedList()
    current = list.head
    while current is not None:
        if current.data > number:
            greater_than_number_list.add(current.data)
        else:
            lesser_than_number_list.add(current.data)
        current = current.next
    lesser_than_number_list_tail = lesser_than_number_list.head
    while lesser_than_number_list_tail.next is not None:
        lesser_than_number_list_tail = lesser_than_number_list_tail.next
    lesser_than_number_list_tail.next = greater_than_number_list.head
    return lesser_than_number_list


if __name__ == '__main__':
    linked_list = L.LinkedList()
    linked_list.add_array_of_elements_to_list(
        [34, 355, 124, 656, 123, 767, 34, 542, 123])
    partitioned_list = partition_list(linked_list, 125)
    partitioned_list.print_list()
Esempio n. 9
0
def linked_list():
    return LinkedList()
        print 'Wrong parameter provided, you asked to find 0 element'
        return
    first_node = alist.head
    last_node = alist.head
    # build a window spaced N
    for i in range(1, n):
        if last_node.next is None:
            print 'There are only {} in the list'.format(i)
            print alist
            return
        else:
            last_node = last_node.next
    # Move both pointers until we get to the end of the list
    while last_node.next is not None:
        last_node = last_node.next
        first_node = first_node.next
    # print N values found
    print 'Last {} elements in the list: '.format(n),
    for i in range(1, n + 1):
        print first_node.value,
        first_node = first_node.next


# Build a list with 10 elements for testing
ll = LinkedList()
for i in range(1, 21):
    ll.insert(random.randint(1, 100))
print 'Given list:',
print ll
find_last_N(ll, 1)
Esempio n. 11
0
 def __init__(self, hash_table_size=19):
     self.hash_table = [LinkedList() for _ in range(hash_table_size)]
Esempio n. 12
0
def test_delete_fail():
    linked_list = LinkedList()
    for i in 'abc':
        linked_list.insert(i)
    with pytest.raises(FileNotFoundError):
        linked_list.delete('d')
Esempio n. 13
0
 def __init__(self, head: Vertex):
     self.head = head
     self.edgenodes = LinkedList()
     self.degree = 0